@@ -206,6 +206,16 @@ - (void)keepView:(UIView *)view onPages:(NSArray *)pages withAttribute:(IFTTTHor
206
206
}
207
207
208
208
- (void )keepView : (UIView *)view onPages : (NSArray *)pages atTimes : (NSArray *)times withAttribute : (IFTTTHorizontalPositionAttribute)attribute
209
+ {
210
+ [self keepView: view onPages: pages atTimes: times withAttribute: attribute offset: 0 .f];
211
+ }
212
+
213
+ - (void )keepView : (UIView *)view onPages : (NSArray *)pages withAttribute : (IFTTTHorizontalPositionAttribute)attribute offset : (CGFloat )offset
214
+ {
215
+ [self keepView: view onPages: pages atTimes: pages withAttribute: attribute offset: offset];
216
+ }
217
+
218
+ - (void )keepView : (UIView *)view onPages : (NSArray *)pages atTimes : (NSArray *)times withAttribute : (IFTTTHorizontalPositionAttribute)attribute offset : (CGFloat )offset
209
219
{
210
220
NSAssert ((pages.count == times.count), @"Make sure you set a time for each position.");
211
221
@@ -217,7 +227,7 @@ - (void)keepView:(UIView *)view onPages:(NSArray *)pages atTimes:(NSArray *)time
217
227
toItem: self .contentView
218
228
attribute: NSLayoutAttributeLeft
219
229
multiplier: 1 .f
220
- constant: 0 .f ];
230
+ constant: offset ];
221
231
[self .contentView addConstraint: xPositionConstraint];
222
232
// TODO: set constraint type for animation initializer
223
233
IFTTTScrollViewPageConstraintAnimation *xPositionAnimation = [IFTTTScrollViewPageConstraintAnimation animationWithSuperview: self .contentView
@@ -234,6 +244,41 @@ - (void)keepView:(UIView *)view onPages:(NSArray *)pages atTimes:(NSArray *)time
234
244
[self .scrollViewPageConstraintAnimations addObject: xPositionAnimation];
235
245
}
236
246
247
+ - (void )keepView : (UIView *)view onPages : (NSArray *)pages withOffsets : (NSArray *)offsets withAttribute : (IFTTTHorizontalPositionAttribute)attribute
248
+ {
249
+ [self keepView: view onPages: pages atTimes: pages withOffsets: offsets withAttribute: attribute];
250
+ }
251
+
252
+ - (void )keepView : (UIView *)view onPages : (NSArray *)pages atTimes : (NSArray *)times withOffsets : (NSArray *)offsets withAttribute : (IFTTTHorizontalPositionAttribute)attribute
253
+ {
254
+ NSAssert ((pages.count == times.count) && (pages.count == offsets.count), @"Make sure you set a time and offset for each position.");
255
+
256
+ view.translatesAutoresizingMaskIntoConstraints = NO ;
257
+
258
+ NSLayoutConstraint *xPositionConstraint = [NSLayoutConstraint constraintWithItem: view
259
+ attribute: [self layoutAttributeFromPositionAttribute: attribute]
260
+ relatedBy: NSLayoutRelationEqual
261
+ toItem: self .contentView
262
+ attribute: NSLayoutAttributeLeft
263
+ multiplier: 1 .f
264
+ constant: 0 .f];
265
+ [self .contentView addConstraint: xPositionConstraint];
266
+ // TODO: set constraint type for animation initializer
267
+ IFTTTScrollViewPageConstraintAnimation *xPositionAnimation = [IFTTTScrollViewPageConstraintAnimation animationWithSuperview: self .contentView
268
+ constraint: xPositionConstraint
269
+ pageWidth: self .pageWidth
270
+ attribute: attribute];
271
+
272
+ for (NSUInteger i = 0 ; i < pages.count ; i++) {
273
+ [xPositionAnimation addKeyframeForTime: (CGFloat )[(NSNumber *)times[i] floatValue ]
274
+ page: (CGFloat )[(NSNumber *)pages[i] floatValue ]
275
+ constant: (CGFloat )[(NSNumber *)offsets[i] floatValue ]];
276
+ }
277
+
278
+ [self .animator addAnimation: xPositionAnimation];
279
+ [self .scrollViewPageConstraintAnimations addObject: xPositionAnimation];
280
+ }
281
+
237
282
- (CGFloat )centerXMultiplierForPage : (CGFloat )page
238
283
{
239
284
return [self multiplierForPage: page withAttribute: IFTTTHorizontalPositionAttributeCenterX];
0 commit comments