#import "TNHotelPageControl.h"
#define dotW 15
#define magrin 6
@implementation TNHotelPageControl
- (instancetype)init
{
if(self = [super init])
{
self.userInteractionEnabled = NO;
}
return self;
}
- (void)setCurrentPage:(NSInteger)currentPage
{
[super setCurrentPage:currentPage];
}
- (void)layoutSubviews
{
[super layoutSubviews];
//计算圆点间距
CGFloat marginX = dotW + magrin;
//计算整个pageControll的宽度
CGFloat newW = (self.subviews.count - 1 ) * marginX;
//设置新frame
self.frame = CGRectMake(self.frame.origin.x, 115, newW, 3);
//设置居中
CGPoint center = self.center;
center.x = self.superview.center.x;
self.center = center;
//遍历subview,设置圆点frame
for (int i=0; i<[self.subviews count]; i++) {
UIImageView* dot = [self.subviews objectAtIndex:i];
if (i == self.currentPage) {
[dot setFrame:CGRectMake(i * marginX, dot.frame.origin.y, dotW, 3)];
dot.layer.cornerRadius = 2;
dot.layer.masksToBounds = YES;
}else {
[dot setFrame:CGRectMake(i * marginX, dot.frame.origin.y, dotW, 3)];
dot.layer.cornerRadius = 2;
dot.layer.masksToBounds = YES;
}
}
}
@end
设置渲染的颜色:
- (TNHotelPageControl *)pageControl
{
if (!_pageControl) {
_pageControl = [TNHotelPageControl new];
_pageControl.backgroundColor = [UIColor clearColor];
if ([_pageControl respondsToSelector:@selector(setPageIndicatorTintColor:)]) {
_pageControl.pageIndicatorTintColor = [UIColor colorWithRed:255.0f green:255.0f blue:255.0f alpha:0.10];
_pageControl.currentPageIndicatorTintColor = [UIColor colorWithRed:255.0f green:255.0f blue:255.0f alpha:0.90];
}
}
return _pageControl;
}