2016-11-08 40 views
0

我做了一個UIButton的類並重寫awakeFromNib。 下一個(綠色按鈕)使用這個類。UIBezierPath按鈕圓角不能正常工作

我在右邊的下一個按鈕(綠色的)有一些空間。這個空間將更加的iPad:

next button

override func awakeFromNib() { 
    super.awakeFromNib() 

    let path = UIBezierPath(roundedRect: self.bounds, byRoundingCorners: [.TopLeft, .BottomLeft], cornerRadii: CGSizeMake(5, 5)) 

    let maskLayer = CAShapeLayer() 
    maskLayer.path = path.CGPath 
    self.layer.mask = maskLayer 

    self.layer.borderColor = MyColor.nextButtonBorder.CGColor 
} 
+0

添加在viewDidAppear方法 –

+0

都能跟得上這個代碼,這是在課堂Next按鈕:UIButton的{...}我下一個按鈕設置爲該類在Interface Builder – Vahid

+0

可能的問題自動佈局設置不正確 –

回答

0

你應該把這個代碼在

layoutSubviews() 

方法。不要忘記刪除以前添加的maskLayer。

完整的示例:

override func layoutSubviews() { 
    super.layoutSubviews() 
    self.layer.mask = nil 
    let path = UIBezierPath(roundedRect: self.bounds, byRoundingCorners: [.TopLeft, .BottomLeft], cornerRadii: CGSizeMake(5, 5)) 

    let maskLayer = CAShapeLayer() 
    maskLayer.path = path.CGPath 
    self.layer.mask = maskLayer 

    self.layer.borderColor = MyColor.nextButtonBorder.CGColor 
} 
+0

我測試過這種方式,但旋轉按鈕將失敗。 – Vahid