iOS14.0適配,記錄!
適配UIPageControl
- 出現的問題:
iOS14以后洗掉了pageImage與currentPageImage,不能再通過KVC修改控制器的圖片, - 解決方案:
借助iOS14新增欄位preferredIndicatorImage,我們可以修改指示器小圓點的大小以及形狀,借助currentPageIndicatorTintColor與pageIndicatorTintColor來確認不同狀態下小圓點的顏色,
最終展示的顏色是由TintColor以及preferredIndicatorImage共同決定的,因此這里將preferredIndicatorImage設定為白色, - 部分代碼示例:::
UIPageControl *pageControl = [[UIPageControl alloc]init];
pageControl.backgroundColor = [UIColor clearColor];
pageControl.numberOfPages = 1;
if (@available(iOS 14.0,*)) {
pageControl.preferredIndicatorImage = [self imageWithColor:[UIColor whiteColor]];
pageControl.currentPageIndicatorTintColor = [UIColor redColor];
pageControl.pageIndicatorTintColor = [UIColor blueColor];
}else{
[pageControl setValue:[UIImage imageNamed:@"pageControllDot"]forKeyPath:@"pageImage"];
[pageControl setValue:[UIImage imageNamed:@"pageControllCurrent"]forKeyPath:@"currentPageImage"];
}
// 繪制小圓點的形狀
- (UIImage *)imageWithColor:(UIColor *)color {
CGRect rect = CGRectMake(0.0f, 0.0f, 12.f, 2.f);
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [color CGColor]);
CGContextFillRect(context, rect);
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/114944.html
標籤:其他
上一篇:Procast呼叫外部函式
下一篇:Android微信登錄開發集成
