テーブルセル内のビューの下部と左上に丸い角をいくつか適用したいとします。そして、私はUIView
にこの拡張機能を作っ:設定する場所UITableViewCell内のUIRectCorner
extension UIView {
func round(_ corners: UIRectCorner, radius: CGFloat) {
let path = UIBezierPath(roundedRect: bounds, byRoundingCorners: corners, cornerRadii: CGSize(width: radius, height: radius))
let mask = CAShapeLayer()
mask.path = path.cgPath
self.layer.mask = mask
}
}
しかし、私はそれを正しく表示するには、私の見解でこれをコールする場所を正確に確認していません。今私はそれを私のカスタムセルのlayoutSubviews()
で呼び出されているが、私のアプリを起動すると、左下の部分は円形ではなく、セルが画面外に出て再描画された後でしかない。
UITableViewCell
の中に丸い角を設定するには、どのような場所が良いでしょうか?
編集:ここでは
コード:
override func layoutSubviews() {
super.layoutSubviews()
configureView()
}
func configureView() {
bgView.layer.cornerRadius = 3.0
period.round([.bottomLeft, .topLeft], radius: 3.0)
bgView.layer.masksToBounds = false
period.layer.masksToBounds = false
bgView.layer.shadowColor = UIColor.black.withAlphaComponent(0.2).cgColor
bgView.layer.shadowOffset = CGSize(width: 0, height: 0)
bgView.layer.shadowOpacity = 0.8
}
編集2:
私は単に層自体のcornerRadiusを設定するのではなく、使用しますCAShapeLayer。 – fishinear
丸みを帯びたいコーナーを選ぶには? – Kobe
ああ、私はすべてのコーナーを丸くしたいと思っていました。 – fishinear