眾所周知慨仿,蘋果對通過kvc設(shè)置私有變量這個事情越來越敏感蹭沛,從IOS13的對textField的placeholder設(shè)置字體大小顏色等就已經(jīng)看出,今年又對UIPageControl下手了诺擅,通過kvc設(shè)置私有變量_pageImage和_currentPageImage會引起程序奔潰咒程,具體見以下代碼:
[pageControl setValue:[UIImage imageNamed:@"page_unselect"] forKeyPath:@"_pageImage"];
[pageControl setValue:[UIImage imageNamed:@"page_select"] forKeyPath:@"_currentPageImage"];
解決方案:
通過自定義pageControl達成預(yù)期目標(biāo),可以參考著名視圖輪播框架SDCycleScrollView里的自定義TAPageControl廉沮,下面放出github地址颓遏,可直接拿過來用
用法和UIPageControl幾乎一模一樣,代碼如下:
- (TAPageControl *)pageControl {
if (!_pageControl) {
_pageControl = ({
TAPageControl *pageControl = [[TAPageControl alloc] init];
pageControl.currentDotImage = [UIImage imageNamed:@"page_select"];
pageControl.dotImage = [UIImage imageNamed:@"page_unselect"];
pageControl.numberOfPages = 3;
pageControl.currentPage = 0;
pageControl;
});
}
return _pageControl;
}