iOS_iOS14.0適配

iOS14.0適配,記錄!spa

適配UIPageControl

  • 出現的問題:
    iOS14之後刪除了pageImagecurrentPageImage,不能再經過KVC修改控制器的圖片。
  • 解決方案:
    藉助iOS14新增字段preferredIndicatorImage,咱們能夠修改指示器小圓點的大小以及形狀,藉助currentPageIndicatorTintColorpageIndicatorTintColor來確認不一樣狀態下小圓點的顏色。
    最終展現的顏色是由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;
}
相關文章
相關標籤/搜索