update:
时间繁忙没来得及更完,先放上来第一版代码(见文末)。
跟公司大佬交流了一下,代码中还有很多不完善的地方(不影响使用),日后会做优化。
前言
你是否有过 UIPageControl 的小圆点突然不见了的经历?
你是否曾面临设计师小姐姐 自定义 UIPageControl 图片、间距 的需求?
—— 恭喜你,本篇文章即为解决以上问题而诞生!
正文
Apple 在 iOS 14 更新了 UIPageControl,提供了很多新的功能,相关细节可以参考这篇文章:(文章)
总结一下 iOS14 针对UIPageControl 的变化:
- 背景
- 自动翻页
感觉上是变得更炫酷了,但仔细研究我们可以发现,这为实际开发带来了许多问题。首先,UIPageControl 的视图层级关系已改变 ⬇️
(这里我会画张图)
可以发现,Apple 在 原来的小圆点和UIPageControl之间加了两个视图,这就导致UIPageControl需要的frame大小比原来的更大,同时我们也无法通过原来的方式改变圆点的间距。
其次,自定义图片的方式已改变⬇️
……
以上种种导致以往在 iOS 14 以前版本的实现方法在 iOS 14 不适用了。那怎么办呢?直观的想法是,针对iOS14的新特性另实现一套方法,代码里判断系统版本就好。我最开始也是这么做的,绞尽脑汁设了图片、改了间距,最后实现了如下效果⬇️
(此处应有一张动图)
……啊啊啊啊,这就是自动翻页的坑啊!研究了半天也不知道怎么改Indicator。好吧,无奈之下我决定自定义实现一个简易的UIPageControl,继承 UIView,没有 iOS14 带来的新特性,也更符合我们的业务需求,同时也避免了以后版本更新可能带来的新一波麻烦。
(在此本菜鸡有个感想,有时候迁就官方新变化不如自己动手丰衣足食)
实现
代码地址:SYPageControl