UITableViewCell中UIView的2个圆角不起作用

时间:2016-03-26 21:28:09

标签: ios swift uitableview rounded-corners

我正在尝试在自定义TableViewCell中为UIView创建圆角。问题是当表视图加载时,它只围绕视图的左上角而不是底部的角。现在,当我稍微滚动表格视图时,它也会绕视图的左下角部分。

我已经尝试了所有可能的方法,但我无法理解它。我还附上截图以及复制代码。感谢

Table Cell Image

我在自定义视图单元类中使用的代码如下所示。

class FoodTVCell: UITableViewCell {

var food: Food!

@IBOutlet weak var foodPicture: UIImageView!
@IBOutlet weak var foodName: UILabel!
@IBOutlet weak var foodRating: UIImageView!
@IBOutlet weak var deliveryTime: UILabel!
@IBOutlet weak var minOrder: UILabel!
@IBOutlet weak var category: UILabel!
@IBOutlet weak var foodPriceLabelBG: UIView!
@IBOutlet weak var foodPrice: UILabel!


   override func awakeFromNib() {
    super.awakeFromNib()
    foodPicture.layer.cornerRadius = 75/2
    foodPicture.clipsToBounds = true

}


override func layoutSubviews() {
    super.layoutSubviews()

    let maskLayer = CAShapeLayer()
    let corners = UIRectCorner.TopLeft.union(UIRectCorner.BottomLeft)
    maskLayer.path = UIBezierPath(roundedRect: foodPriceLabelBG.bounds, byRoundingCorners: corners, cornerRadii: CGSizeMake(20.0, 20.0)).CGPath
    foodPriceLabelBG.layer.mask = maskLayer
    foodPriceLabelBG.clipsToBounds = true
}

}

1 个答案:

答案 0 :(得分:0)

你的'转角'代码运行良好,问题是你的UIView的底边超出了Cell的底边。减少UIView的{​​{1}}位置,Y将覆盖该位置。我看到你的细胞的分隔线也是不可见的,这意味着你应该在Cell

给你的细胞增加一个更大的高度

你说它在滚动方面工作得很好,我想它在向下滚动时工作,在滚动到顶部时不工作。这意味着你的第一个单元格在第二个单元格被重新绘制到滚动到底部(第二个单元格不覆盖你的第一个单元格),反之亦然,同时滚动到顶部(第二个单元格覆盖你的第一个单元格)