我正在尝试为在storyboard中创建的UITableViewCell创建一个圆角矩形。我在Xcode 7中使用Swift 2。原型单元格中有两个视图,topView和bottomView。我希望topView拥有其顶部角落被圆化,bottomView也是如此。
在awakeFromNib(可能会到更好的地方):
...
self.topView.backgroundColor = UIColor.redColor()
self.bottomView.backgroundColor = UIColor.grayColor()
self.setMaskToView(self.topView, corners:UIRectCorner.TopLeft.union(UIRectCorner.TopRight))
self.setMaskToView(self.bottomView, corners: UIRectCorner.BottomLeft.union(UIRectCorner.BottomRight))
...
在一个单独的函数中(基于另一个Stack Overflow帖子的答案):
func setMaskToView(view : UIView, corners: UIRectCorner) {
let rounded = UIBezierPath(roundedRect: self.bounds, byRoundingCorners: corners, cornerRadii: CGSize(width: 10, height: 10))
let mask = CAShapeLayer()
mask.path = rounded.CGPath
view.layer.mask = mask
}
请注意,我还尝试过使用[.TopRight, .TopLeft]代替union(),基于Stack Overflow的其他帖子。但是似乎没有任何改变。我也绝望地清理和重新启动了Xcode。这就是我的结果:
![顶部单元格显示问题。只有.TopLeft似乎被应用,即使它在两个不同的视图上调用](https://istack.dev59.com/OvYTD.webp)
谢谢。