iOS 14 UIPageControl设置样式 不生效, 需要的正确设置顺序才能 显示正常
初始化的顺序必须一一对应
// Page 设置的顺序不能错,不然会样式会混乱
pageC.numberOfPages = 3
let startpage = 0
if #available(iOS 14.0, *) {
pageC.preferredIndicatorImage = imageLiteral(resourceName: "defaultIndicator")
pageC.setIndicatorImage( imageLiteral(resourceName: "selectedIndicator"), forPage: startpage)
} else {
// Fallback on earlier versions
}
// 设置颜色
pageC.currentPageIndicatorTintColor = .XWGreen
pageC.pageIndicatorTintColor = .XWGreen
// 最后设置当前页面
pageC.currentPage = 0
当前页变化后的设置
extension WelcomeVC:UIScrollViewDelegate {
private func toPageView(_ View:UIView){
scrollV.scrollRectToVisible(View.frame, animated: true)
}
internal func scrollViewDidScroll(_ scrollView: UIScrollView) {
guard scrollView.width != 0 else{
self.pageC.currentPage = 0
return
}
let page = (scrollView.contentOffset.x / scrollView.width).ceil.int
//指定当前页所展示的当前页面(滑动到一半位置,则显示下一页)
\
if #available(iOS 14.0, *) {
\
for i in 0..<pageC.numberOfPages {
if i == page {
pageC.setIndicatorImage( imageLiteral(resourceName: "selectedIndicator") , forPage: i)
}else{
pageC.setIndicatorImage( imageLiteral(resourceName: "defaultIndicator") , forPage: i)
}
}
} else {
// Fallback on earlier versions
}
\
//不能提前设置 当前Page,否则颜色不对
pageC.currentPage = page
\
}
}