1

我想與陰影效果設置爲圓角半徑不同的價值觀的TableView細胞內的UIView,就像這樣:如何設置.topright與TableView中細胞內高值T壟斷redius斯威夫特3

 this image

我的代碼是:

cell.headerView.round(corners: [.topRight], radius: 35) 

extension UIView { 
    func round(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 
     self.layoutIfNeeded()  
    } 
} 

這是工作在iPhone模擬器SE但不工作的iPhone 6S模擬器。

+0

我想創建自己的道路,而不是使用'UIBezierPath(圓角矩形:byRoundingCorners:cornerRadii:)'應該適用於每個角落一樣的效果我發現奇怪的是它可以在SE上運行而不是6S,而該方法不應該產生你想要的效果。 – Larme

+0

我想設置右上角視角的角度更加圓角,其餘3個角度相同 –

回答

0

夫特4

myView.clipsToBounds = true 
     myView.layer.cornerRadius = 20 
     myView.layer.maskedCorners = [.layerMaxXMaxYCorner,.layerMinXMaxYCorner,.layerMinXMinYCorner] 
0

我已經使用幾乎相同的實現,它是兩者的設備上工作正常以及模擬器。

extension UIView 
{ 
    func roundCorners(corners: UIRectCorner, radius: CGFloat) 
    { 
     let bounds = self.bounds 
     let maskPath = UIBezierPath(roundedRect: bounds, byRoundingCorners: corners, cornerRadii: CGSize(width: radius, height: radius)) 
     let maskLayer = CAShapeLayer() 
     maskLayer.frame = bounds 
     maskLayer.path = maskPath.cgPath 
     self.layer.mask = maskLayer 
    } 
} 

class CustomCell: UITableViewCell 
{ 
    @IBOutlet weak var customView: UIView! 

    override func awakeFromNib() 
    { 
     super.awakeFromNib() 
     self.customView.layer.cornerRadius = 10.0 
     self.customView.roundCorners(corners: [.topRight], radius: 35.0) 
    } 
} 

截圖:

enter image description here