![](/img/trans.png)
[英]Round only 2 corners of a UIView in custom UITableViewCell - iOS
[英]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
的底部邊緣。 減少UIView
的Y
位置,它將被Cell
覆蓋。 我也看到單元格的分隔線也不可見,這意味着您應該在heightForRowAtIndexPath:
處給單元格更大的高度heightForRowAtIndexPath:
您說它在滾動時效果很好,我想它在向下滾動時可以工作,而在向上滾動時則無法工作。 這意味着您的第一個單元格在滾動到底部(第二個單元格不覆蓋您的第一個單元格)的第二秒后重繪,反之亦然,在滾動到頂部時(第二個單元格覆蓋了您的第一個單元格)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.