UIPageControl是蘋果自帶的一個分頁控制器,但是它的樣式可能不會滿足我們所有的需求,系統(tǒng)自帶的樣式是圓形且大小固定的。但是我們可以通過重寫UIPageControl來達到我們想要的效果.
具體步驟
- 創(chuàng)建一個類,繼承于UIPageControl
- 重寫init方法,記得設置 self.userInteractionEnabled = NO;
否則UIPageController可以被點擊)

13181556-FDAE-4F07-A616-EAC31224A61B.png
- 最后重寫set方法,修改他的樣式(大小,圓角都可以設置,位置,背景圖等)

7D7B9531-3AA6-4853-976E-DDB82717690E.png
我最終想要的效果是讓它變成方形的,你們需要什么樣式根據需求自定義就行啦

27B9BB2E-37D1-467B-B1A0-824BC49ABD21.png
核心代碼
- (instancetype)init
{
self = [super init];
if (self) {
self.userInteractionEnabled = NO;
}
return self;
}
-(void)setCurrentPage:(NSInteger)currentPage{
[super setCurrentPage:currentPage];
for (NSUInteger subviewIndex = 0; subviewIndex < [self.subviews count]; subviewIndex++) {
UIImageView* subview = [self.subviews objectAtIndex:subviewIndex];
// CGSize size;
// size.height = 12;
//
// size.width = 12;
//
// [subview setFrame:CGRectMake(subview.frame.origin.x, subview.frame.origin.y,
//
// size.width,size.height)];
if (subviewIndex == currentPage)
// subview.image =[UIImage imageNamed:@"60.png"];
{ subview.layer.cornerRadius = 0;
subview.layer.masksToBounds = YES;
}
else
{ //subview.image =[UIImage imageNamed:@"60.png"];
subview.layer.cornerRadius = 0;
subview.layer.masksToBounds = YES;
}
}
~~~