ios - iOS 14 UIPageControl 未选择的页面被视为 currentPage
问题描述
当我使用 setIndicatorImage 为 UIPageControl 设置图像时,未选择页面的色调颜色设置为 currentPageIndicatorTintColor,但当前页面的色调颜色是默认指示器色调颜色。
self.customPageControl.currentPage = currentPage;
if (@available(iOS 14.0, *)) {
_pageControl.pageIndicatorTintColor = [UIColor blueColor];
_pageControl.currentPageIndicatorTintColor = [UIColor greenColor];
for(int i=0; i<self.pageControl.numberOfPages; i++){
if(i == currentPage){
[self.pageControl setIndicatorImage:[UIImage imageNamed:@"pageCtrlSelected"] forPage:i];
}
else{
[self.pageControl setIndicatorImage:[UIImage imageNamed:@"pageCtrlUnselect"] forPage:i];
}
}
} else {
// Fallback on earlier versions
}
解决方案
最后我通过在设置指示器图像循环后调用设置当前页面来解决这个问题。代码截图如下。
if (@available(iOS 14.0, *)) {
_pageControl.pageIndicatorTintColor = [UIColor blueColor];
_pageControl.currentPageIndicatorTintColor = [UIColor greenColor];
for(int i=0; i<self.pageControl.numberOfPages; i++){
if(i == currentPage){
[self.pageControl setIndicatorImage:[UIImage imageNamed:@"pageCtrlSelected"] forPage:i];
}
else{
[self.pageControl setIndicatorImage:[UIImage imageNamed:@"pageCtrlUnselect"] forPage:i];
}
}
} else {
// Fallback on earlier versions
}
/// It's important that set currentPage after set indicator image !!!!
self.customPageControl.currentPage = currentPage;
推荐阅读
- linux - AWK 命令在 linux 中不起作用,但在 mac 中起作用
- javascript - 调用回调函数的函数应该绑定吗?
- powerbi - Power BI 测量计算百分比
- c - 从字符串中打印相似的单词-c
- java - Spring @Configuration 未在测试上下文中覆盖
- python - 大异常处理程序或大量 try...except 子句
- java - ChartPanel 未在 GUI 中注册为组件
- elasticsearch - 弹性搜索重复数据删除
- mysql - 没有可用的包 msyql-server
- while-loop - 检测按钮按下的最佳方法是什么 - Arduino