gpt4 book ai didi

ios - 除非调用 super.layoutSubviews(),否则自定义 UIButton layoutSubviews() 不起作用

转载 作者:行者123 更新时间:2023-12-01 18:46:12 28 4
gpt4 key购买 nike

代码:

class ViewController: UIViewController{

var button = CustomButton()

override func viewDidLoad(){
super.viewDidLoad()
button.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(button)
//add constraints and etc.
}
}

class CustomButton: UIButton{
override func layoutSubviews() {
super.layoutSubviews()
self.layer.cornerRadius = self.layer.frame.width * 0.5
self.setTitle("abc", forState: .Normal)
}
}

问题一:我为什么要打 super.layoutSubviews()对于 setTitle()去工作? (即 cornerRadius 确实设置了,但没有设置标题)

问题 2:我尝试将我拥有的代码放入 layoutSubviews()drawRect()但这不会改变 cornerRadius .

最佳答案

UIButton包含 UILabel subview 以显示其标题。如果您不调用super.layoutSubviews() ,该子标签未正确设置。

关于ios - 除非调用 super.layoutSubviews(),否则自定义 UIButton layoutSubviews() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35590676/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com