我无法在 iOS 14 中设置页面控件点的边框颜色。以下代码适用于 iOS < 14,但不适用于 iOS 14:
for (int i = 0; i < [self.subViews count]; i++) {
UIView *dot = [self.subViews objectAtIndex:i];
dot.layer.borderWidth = 1;
dot.layer.borderColor = [UIColor blueColor].CGColor;
}
Run Code Online (Sandbox Code Playgroud)
UIPageControl 色调颜色清晰。我只想添加边框。在 Obj-C 中需要一个解决方案。
即使您更新代码以匹配新的视图层次结构......
UIView *pageControlContentView = self.pageControl.subviews[0];
UIView *pageControlIndicatorContentView = pageControlContentView.subviews[0];
[pageControlIndicatorContentView.subviews enumerateObjectsUsingBlock:^(__kindof UIView * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
obj.layer.borderWidth = 1;
obj.layer.borderColor = UIColor.blueColor.CGColor;
}];
Run Code Online (Sandbox Code Playgroud)
......你会得到这样的东西:
iOS 14 引入了您可以使用的新属性和方法:
例如,您可以使用 SF 符号:
UIImage *image = [UIImage systemImageNamed:@"link.circle.fill"];
self.pageControl.preferredIndicatorImage = image;
Run Code Online (Sandbox Code Playgroud)
然后你会得到:
换句话说,为了安全起见,避免私有视图层次结构,使用preferredIndicatorImage. 如果您想自定义图像等,您可以准备自己的图像。但这是另一个问题的主题。如果您想以编程方式执行此操作,请搜索此类问题。
由于您使用的是私有视图层次结构,因此请学习您的工具 (Xcode) 并从检查视图层次结构和调试视图层次结构章节开始。下次您将能够找到自己的问题所在。
| 归档时间: |
|
| 查看次数: |
1822 次 |
| 最近记录: |