优化机会:UISwitch遮罩-自定义offTintColor

时间:2020-10-05 12:59:37

标签: ios swift optimization uiswitch

在调试视图层次结构时,我遇到了有关带有遮罩视图的UISwitch控件的优化警告。尽管我不清楚,但解决此警告有什么好处(请见谅),但我尝试对其进行修复,但未成功。

优化机会:该图层使用的是背景颜色设置为蒙版的简单图层。而是使用与屏蔽相同的framecornerRadius容器层,但将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,请分享。谢谢!

0 个答案:

没有答案