2015-11-07 87 views
1

我加底部圓角到我UIView是這樣的:添加圓角的UIView禁用的touchesBegan

let maskLayer = CAShapeLayer() 
maskLayer.path = UIBezierPath(roundedRect: bounds, byRoundingCorners: [.BottomLeft, .BottomRight], cornerRadii: CGSizeMake(20, 20)).CGPath 
self.layer.mask = maskLayer 

這是它以前的樣子:enter image description here

後:enter image description here

有2個問題。底部的第一個圖像消失了,第二個是touchesBegantouchesMoved等未被調用。

圖像上有3個約束:

enter image description here

回答

0

四捨五入角的另一種方法(它從不導致這些問題對我來說)是這2種方法適用於您的視圖:

myView.clipsToBounds = true 
myView.layer.cornerRadius = 5 (play with this to get what you want!) 
+0

我將四捨五入到底,我只需要底部 –

0

將您的代碼放入layoutSubviewsoverride,以便它使用更新後的邊界:

override func layoutSubviews() { 
    super.layoutSubviews() 
    let maskLayer = CAShapeLayer() 
    maskLayer.path = UIBezierPath(roundedRect: bounds, byRoundingCorners: [.BottomLeft, .BottomRight], cornerRadii: CGSizeMake(20, 20)).CGPath 
    self.layer.mask = maskLayer 
} 
+0

'touchesMoved','touchesBegan'正在調用,但底部圖像沒有出現 –

+0

你只把這個代碼放在'layoutSubviews()'中,還是在別的地方? – vacawama

+0

只在'layoutSubviews()' –