2017-06-26 13 views
0

私はiOS開発が初めてで、丸めたい左上と左下のコーナーを持つカスタムUITableViewCellを作成しようとしていますが、左の角。ここでUITableViewCell TopLeftとBottomLeftコーナーが機能しない

は私のコード(スウィフト3)である。

override func awakeFromNib() { 
    super.awakeFromNib() 

    let bgViewMask = CAShapeLayer() 

    let bgViewPath = UIBezierPath(
     roundedRect: bgView.bounds, 
     byRoundingCorners: [.topLeft, .bottomLeft], 
     cornerRadii: CGSize(width: 8, height: 8) 
    ) 

    bgViewMask.frame = bgView.bounds 
    bgViewMask.path = bgViewPath.cgPath 

    bgView.layer.mask = bgViewMask 
} 

私も

override func layoutSubviews() { 
    super.layoutSubviews() 

    //code here 
} 

)(layoutSubviewsでこれをしようとしたが、それは同様に動作しませんでした。

bgView.layer.cornerRadius = 8を使用すると、すべてのコーナーで機能します。

何か間違っていますか?

答えて

3

あなたはこれを試すことができます:それは作品

import UIKit 
class CustomImageView: UIImageView { 

override public func layoutSubviews() { 
    super.layoutSubviews() 
    self.roundUpCorners([.topLeft, .bottomLeft], radius: 8) 
} 
} 
extension UIView { 
func roundUpCorners(_ corners: UIRectCorner, radius: CGFloat) { 
    let path = UIBezierPath(roundedRect: self.bounds, byRoundingCorners: corners, cornerRadii: CGSize(width: radius, height: radius)) 
    let mask = CAShapeLayer() 
    mask.path = path.cgPath 
    self.layer.mask = mask 
} 
} 
+0

、ありがとうございました! –

+0

ようこそ。ハッピーコーディング。 –

関連する問題