在调试视图层次结构时,我遇到了有关带有遮罩视图的UISwitch
控件的优化警告。尽管我不清楚,但解决此警告有什么好处(请见谅),但我尝试对其进行修复,但未成功。
优化机会:该图层使用的是背景颜色设置为蒙版的简单图层。而是使用与屏蔽相同的
frame
和cornerRadius
容器层,但将masksToBounds
设置为YES。
let maskedSwitch: UISwitch = UISwitch()
maskedSwitch.translatesAutoresizingMaskIntoConstraints = false
maskedSwitch.tintColor = .black
maskedSwitch.onTintColor = .green
maskedSwitch.backgroundColor = .black
let maskView = UIView(frame: maskedSwitch.frame)
maskView.backgroundColor = .black
maskView.layer.cornerRadius = maskedSwitch.frame.height / 2
maskView.layer.masksToBounds = true
maskView.clipsToBounds = true
maskedSwitch.mask = maskView
let scale: CGFloat = 2.5 / 3
maskedSwitch.transform = CGAffineTransform(scaleX: scale, y: scale)
按照建议,我尝试删除maskView并直接在开关上应用cornerRadius和offTintColor。但这最终弄乱了比例转换,保留UI十分重要。
如何进一步优化代码并确保满足以下所有条件:1.将offTintColor设置为黑色,2.缩放开关,并3.避免出现优化机会警告?
注意:如果有Apple文档可以进一步研究主题Optimization Opportunities
,请分享。谢谢!