如何解决自定义UISlider内部栏角半径发行iOS 14
在我的自定义UISlider中,我想实现一个圆角的内部栏。我没有拇指。它在iOS 13中工作正常,但在14中它崩溃并显示错误:
***由于未捕获的异常'NSRangeException'而终止应用程序,原因:'***-[__ NSSingleObjectArrayI objectAtIndex:]:索引1超出范围[0 .. 0]'
自定义UISlider代码
class CustomSlider: UISlider {
@IBInspectable var trackHeight: CGFloat = 30
override func layoutSubviews() {
super.layoutSubviews()
self.layer.sublayers![1].cornerRadius = 12
self.thumbTintColor = .clear
}
}
self.layer.sublayers![1] .cornerRadius = 12,这行产生了问题。如果我对此行发表评论,则效果很好。
解决方法
您可以使用if let
...
override func layoutSubviews() {
super.layoutSubviews()
if let arrSubLayer = layer.sublayers,arrSubLayer.count > 1 {
arrSubLayer[1].cornerRadius = 12
}
self.thumbTintColor = .clear
}
它将检查子层。如果有,它将在您尝试访问索引1时检查count> 1。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。