@@ -17,6 +17,7 @@ @interface ImagePlayerView() <UIScrollViewDelegate>
17
17
@property (nonatomic , strong ) NSArray *imageURLs;
18
18
@property (nonatomic , strong ) NSTimer *autoScrollTimer;
19
19
@property (nonatomic , strong ) UIPageControl *pageControl;
20
+ @property (nonatomic , strong ) NSMutableArray *pageControlConstraints;
20
21
@end
21
22
22
23
@implementation ImagePlayerView
@@ -72,14 +73,20 @@ - (void)_init
72
73
self.pageControl .currentPage = 0 ;
73
74
[self addSubview: self .pageControl];
74
75
75
- [self addConstraints: [NSLayoutConstraint constraintsWithVisualFormat: @" V:[pageControl]-0-|"
76
- options: kNilOptions
77
- metrics: nil
78
- views: @{@" pageControl" : self.pageControl }]];
79
- [self addConstraints: [NSLayoutConstraint constraintsWithVisualFormat: @" H:[pageControl]-|"
80
- options: kNilOptions
81
- metrics: nil
82
- views: @{@" pageControl" : self.pageControl }]];
76
+ NSArray *pageControlVConstraints = [NSLayoutConstraint constraintsWithVisualFormat: @" V:[pageControl]-0-|"
77
+ options: kNilOptions
78
+ metrics: nil
79
+ views: @{@" pageControl" : self.pageControl }];
80
+
81
+ NSArray *pageControlHConstraints = [NSLayoutConstraint constraintsWithVisualFormat: @" H:[pageControl]-|"
82
+ options: kNilOptions
83
+ metrics: nil
84
+ views: @{@" pageControl" : self.pageControl }];
85
+
86
+ self.pageControlConstraints = [NSMutableArray arrayWithArray: pageControlVConstraints];
87
+ [self .pageControlConstraints addObjectsFromArray: pageControlHConstraints];
88
+
89
+ [self addConstraints: self .pageControlConstraints];
83
90
84
91
}
85
92
@@ -256,5 +263,70 @@ - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
256
263
self.pageControl .currentPage = currentIndex;
257
264
}
258
265
266
+ #pragma mark -
267
+ - (void )setPageControlPosition : (ICPageControlPosition)pageControlPosition
268
+ {
269
+ NSString *vFormat = nil ;
270
+ NSString *hFormat = nil ;
271
+
272
+ switch (pageControlPosition) {
273
+ case ICPageControlPosition_TopLeft: {
274
+ vFormat = @" V:|-0-[pageControl]" ;
275
+ hFormat = @" H:|-[pageControl]" ;
276
+ break ;
277
+ }
278
+
279
+ case ICPageControlPosition_TopCenter: {
280
+ vFormat = @" V:|-0-[pageControl]" ;
281
+ hFormat = @" H:|[pageControl]|" ;
282
+ break ;
283
+ }
284
+
285
+ case ICPageControlPosition_TopRight: {
286
+ vFormat = @" V:|-0-[pageControl]" ;
287
+ hFormat = @" H:[pageControl]-|" ;
288
+ break ;
289
+ }
290
+
291
+ case ICPageControlPosition_BottomLeft: {
292
+ vFormat = @" V:[pageControl]-0-|" ;
293
+ hFormat = @" H:|-[pageControl]" ;
294
+ break ;
295
+ }
296
+
297
+ case ICPageControlPosition_BottomCenter: {
298
+ vFormat = @" V:[pageControl]-0-|" ;
299
+ hFormat = @" H:|[pageControl]|" ;
300
+ break ;
301
+ }
302
+
303
+ case ICPageControlPosition_BottomRight: {
304
+ vFormat = @" V:[pageControl]-0-|" ;
305
+ hFormat = @" H:[pageControl]-|" ;
306
+ break ;
307
+ }
308
+
309
+ default :
310
+ break ;
311
+ }
312
+
313
+ [self removeConstraints: self .pageControlConstraints];
314
+
315
+ NSArray *pageControlVConstraints = [NSLayoutConstraint constraintsWithVisualFormat: vFormat
316
+ options: kNilOptions
317
+ metrics: nil
318
+ views: @{@" pageControl" : self.pageControl }];
319
+
320
+ NSArray *pageControlHConstraints = [NSLayoutConstraint constraintsWithVisualFormat: hFormat
321
+ options: kNilOptions
322
+ metrics: nil
323
+ views: @{@" pageControl" : self.pageControl }];
324
+
325
+ [self .pageControlConstraints removeAllObjects ];
326
+ [self .pageControlConstraints addObjectsFromArray: pageControlVConstraints];
327
+ [self .pageControlConstraints addObjectsFromArray: pageControlHConstraints];
328
+
329
+ [self addConstraints: self .pageControlConstraints];
330
+ }
259
331
@end
260
332
0 commit comments