问题
项目中使用到了
新点
背景样式backgroundStyle
1 2 3 4 5 6 | /// The default background style that adapts based on the current interaction state. UIPageControlBackgroundStyleAutomatic = 0, /// The background style that shows a full background regardless of the interaction UIPageControlBackgroundStyleProminent = 1, /// The background style that shows a minimal background regardless of the interaction UIPageControlBackgroundStyleMinimal = 2, |
当

UIPageControlBackgroundStyleProminent
当

UIPageControlBackgroundStyleMinimal
自定义小圆点的图片preferredIndicatorImage
一般情况下圆点已经能够满足需求,但是有时候希望小圆点是自定义图片。
1 2 3 | pc.preferredIndicatorImage = [UIImage systemImageNamed:@"sun.max.fill"];//系统图片 //或者 pc.preferredIndicatorImage = [UIImage imageNamed:@"flight"];//自定义图片 |

系统图片

自定义图片
每个圆点采用不同图片
我们可以通过
1 2 | pc.preferredIndicatorImage = [UIImage systemImageNamed:@"sun.max.fill"]; [pc setIndicatorImage:[UIImage systemImageNamed:@"moon.fill"] forPage:0]; |

。
不同图片
设置每个圆点都不一样
1 2 3 | for (NSInteger page = 0; page < pc.numberOfPages; page ++) { [pc setIndicatorImage:[UIImage systemImageNamed:[NSString stringWithFormat:@"%ld.circle",page + 1]] forPage:page]; } |

都不一样
圆点的个数不再被限制
1 | pc.numberOfPages = 40; |

圆点个数过
通过拖拽快速移动圆点allowsContinuousInteraction
1 | pc.allowsContinuousInteraction = YES; |
注意??:这些属性都是iOS 14之后才有的所以我们要处理好对应逻辑
1 2 3 4 5 | if (@available(iOS 14.0, *)) { } else { // Fallback on earlier versions } |
三方SDCycleScrollView 显示错误
因为
方法1
直接在
1 2 3 | if (@available(iOS 14.0, *)) { x = 0; size.width = self.sd_width; |

注意??:这种方法就是将
方法2
直接在
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | if ([self.pageControl isKindOfClass:[TAPageControl class]]) { CGRect pageControlFrame = CGRectMake(x, y, size.width, size.height); pageControlFrame.origin.y -= self.pageControlBottomOffset; pageControlFrame.origin.x -= self.pageControlRightOffset; self.pageControl.frame = pageControlFrame; }else{ self.pageControl.translatesAutoresizingMaskIntoConstraints = NO; [[self.pageControl.bottomAnchor constraintEqualToAnchor:self.bottomAnchor constant:-_pageControlBottomOffset] setActive:YES]; [[self.pageControl.heightAnchor constraintEqualToConstant:self.pageControlDotSize.height] setActive:YES]; if (_pageControlAliment == SDCycleScrollViewPageContolAlimentRight) { if (@available(iOS 14.0, *)) { [[self.pageControl.rightAnchor constraintEqualToAnchor:self.rightAnchor constant:25] setActive:YES]; }else{ [[self.pageControl.rightAnchor constraintEqualToAnchor:self.rightAnchor constant:-_pageControlRightOffset] setActive:YES]; } }else{ [[self.pageControl.centerXAnchor constraintEqualToAnchor:self.centerXAnchor] setActive:YES]; } } |
方法2
注意??:可以通过
SDCycleScrollView
密码:jtv8
1人点赞
日记本
作者:HF_K
链接:https://www.jianshu.com/p/e21985a33ceb
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。