読者です 読者をやめる 読者になる 読者になる

文字っぽいの。

文字を書いています。写真も混ざります。

Swift3でCornerRadiusが効かない、というか崩れて背景色がおかしくなる。

UITableViewCellの中でよくやってた、

override func layoutSubviews() {
    super.layoutSubviews()

    someView.layer.cornerRadius = someView.frame.height / 2.0
    someView.clipsToBounds = true
}

という書き方だとはViewが崩れたり、角丸にならなかったり、背景色が反映されなかったり(実際は反映されてるんだけどViewのサイズがおかしいからか見えない)する。

こう書けば良い、

override func awakeFromNib() {
    super.awakeFromNib()

    layoutIfNeeded()
    someView.layer.cornerRadius = someView.frame.height / 2.0
    someView.clipsToBounds = true
}

layoutIfNeeded() を先に呼んでおけば良いらしいです。

参考

stackoverflow.com