簡體   English   中英

UITableViewCell中的UIView的2個圓角不起作用

[英]2 Round Corners of a UIView in UITableViewCell not working

我正在嘗試在自定義TableViewCell中為UIView創建圓角。 問題是當加載表視圖時,它僅使視圖的左上角變圓而不是底部的一個圓角。 現在,當我稍微滾動表格視圖時,它也會同時舍入視圖的左下角。

我嘗試了所有可能的方法,但是我無法解決。 我還將附加屏幕截圖以及復制代碼。 謝謝

表單元格圖像

我在自定義視圖單元格類中使用的代碼如下。

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
}

}

您的“角取整”代碼運行良好,問題是UIView的底部邊緣超出了Cell的底部邊緣。 減少UIViewY位置,它將被Cell覆蓋。 我也看到單元格的分隔線也不可見,這意味着您應該在heightForRowAtIndexPath:處給單元格更大的高度heightForRowAtIndexPath:

您說它在滾動時效果很好,我想它在向下滾動時可以工作,而在向上滾動時則無法工作。 這意味着您的第一個單元格在滾動到底部(第二個單元格不覆蓋您的第一個單元格)的第二秒后重繪,反之亦然,在滾動到頂部時(第二個單元格覆蓋了您的第一個單元格)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM