Tho*_*ard 5 uitableview swift2 ios10
我想在 UITableViewCell 内创建一个圆形 UIView (myView)
在 iOS 10 之前,我曾经func awakeFromNib()这样做过:
class MyCell: UITableViewCell {
@IBOutlet var myView: UIView!
override func awakeFromNib() {
super.awakeFromNib()
print(myView.bounds.height)
myView.layer.cornerRadius = myView.bounds.height/2
myView.layer.masksToBounds = true
}
}
Run Code Online (Sandbox Code Playgroud)
myViewheight 和 with通过故事板中的自动布局约束设置为30 。
但在控制台中print(myView.bounds.height)显示1000.0 。所以圆角半径指令将半径设置为500并myView完全消失。
UITableViewCelliOS 10 的生命周期有变化吗?iOS 10 中设置 view.bounds 的函数是否发生变化?cornerRadius如何在 iOS 10 中将视图高度设置为一半?
为了得到接近我想要的结果,我需要在我的UITableViewController:
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
tableView.reloadData()
}
Run Code Online (Sandbox Code Playgroud)
但我很确定这不是最佳的......
小智 0
当询问子视图的边界时,我遇到了完全相同的问题,大小相同,为1000.0 。
由于框架或边界值不再可靠,我必须为故事板中定义的高度约束声明一个 IBOutlet,并使用它来设置子视图的角半径。
class MyCell: UITableViewCell {
@IBOutlet var myView: UIView!
@IBOutlet var myViewHeightConstraint: NSLayoutConstraint!
override func awakeFromNib() {
super.awakeFromNib()
print(myView.bounds.height)
myView.layer.cornerRadius = myViewHeightConstraint.constant / 2
myView.layer.masksToBounds = true
}
}
Run Code Online (Sandbox Code Playgroud)
这将使您能够删除reloadData确实不是您所说的最佳选择的呼叫。
| 归档时间: |
|
| 查看次数: |
2121 次 |
| 最近记录: |