Skip to content

Commit 48f7225

Browse files
committed
- add pageControl position property
1 parent 932ea41 commit 48f7225

File tree

3 files changed

+91
-8
lines changed

3 files changed

+91
-8
lines changed

Examples/ImagePlayerViewDemo/ImagePlayerViewDemo/ICViewController.m

+1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ - (void)viewDidLoad
2626

2727
[self.imagePlayerView initWithImageURLs:imageURLs placeholder:nil delegate:self];
2828
self.imagePlayerView.scrollInterval = 5.0f;
29+
self.imagePlayerView.pageControlPosition = ICPageControlPosition_BottomRight;
2930
}
3031

3132
- (void)didReceiveMemoryWarning

ImagePlayerView/ImagePlayerView.h

+10
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,22 @@
88

99
#import <UIKit/UIKit.h>
1010

11+
typedef NS_ENUM(NSInteger, ICPageControlPosition) {
12+
ICPageControlPosition_TopLeft,
13+
ICPageControlPosition_TopCenter,
14+
ICPageControlPosition_TopRight,
15+
ICPageControlPosition_BottomLeft,
16+
ICPageControlPosition_BottomCenter,
17+
ICPageControlPosition_BottomRight
18+
};
19+
1120
@protocol ImagePlayerViewDelegate;
1221

1322
@interface ImagePlayerView : UIView
1423
@property (nonatomic, assign) id<ImagePlayerViewDelegate> imagePlayerViewDelegate;
1524
@property (nonatomic, assign) BOOL autoScroll; // Default is YES, set NO to turn off autoScroll
1625
@property (nonatomic, assign) NSUInteger scrollInterval; // scroll interval, unit: second, Default is 2 seconds
26+
@property (nonatomic, assign) ICPageControlPosition pageControlPosition;
1727

1828
/**
1929
* Init image player

ImagePlayerView/ImagePlayerView.m

+80-8
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ @interface ImagePlayerView() <UIScrollViewDelegate>
1717
@property (nonatomic, strong) NSArray *imageURLs;
1818
@property (nonatomic, strong) NSTimer *autoScrollTimer;
1919
@property (nonatomic, strong) UIPageControl *pageControl;
20+
@property (nonatomic, strong) NSMutableArray *pageControlConstraints;
2021
@end
2122

2223
@implementation ImagePlayerView
@@ -72,14 +73,20 @@ - (void)_init
7273
self.pageControl.currentPage = 0;
7374
[self addSubview:self.pageControl];
7475

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];
8390

8491
}
8592

@@ -256,5 +263,70 @@ - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
256263
self.pageControl.currentPage = currentIndex;
257264
}
258265

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+
}
259331
@end
260332

0 commit comments

Comments
 (0)