我有一个cornerRadius设置在UIView和UIImageView在同一个UIView内。我用RockProfileView.frame.size.height / 2计算角半径,但是UIView在iOS 10中停止显示。
进一步检查后,我发现RockProfileView.frame.size.height / 2的值出来是1000.0,而宽度和高度约束设置为64.0
当我将RockProfileView.layer.cornerRadius = 32硬编码到64/2,它工作正常。
可能是什么问题?
完整代码:
RockProfileView.layer.cornerRadius = RockProfileView.frame.size.height / 2 RockProfileView.clipsToBounds = true RockProgressView.layer.masksToBounds = true
正如Rob回答的,我已将代码从viewDidLoad移到viewDidAppear,问题已修复。
要么
在viewDidLoad中的代码之前添加self.view.layoutIfNeeded()也可以解决问题。
在UITableViewCell的情况下,内部awakeFromNib添加[self layoutIfNeeded];在更新角半径之前应该解决所有的问题。