2016-03-26 1 views
0

Я пытаюсь создать круглые углы для UIView с помощью собственного TableViewCell. Проблема заключается в том, когда загружается табличный вид, он только округляет верхний левый угол обзора, а не нижний. Теперь, когда я немного прокручиваю табличный вид, он также округляет нижнюю левую часть представления.2 Round Corners из UIView в UITableViewCell не работает

Я пробовал все возможные методы, но я не могу обойти его. Я также прикрепляю скриншоты, а также копирую код. Благодаря

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 
} 

} 

ответ

0

Ваш «закруглением» код работает очень хорошо, проблема заключается в том, что ваши UIView «нижний край S происходит за пределами ваших Cell» ы нижнего края. Уменьшите свою позицию Y, и она будет покрыта вашим Cell. Я вижу, что линия разделителя вашей ячейки тоже невидима, это означает, что вы должны дать большую высоту своей ячейке на heightForRowAtIndexPath:

Вы сказали, что она очень хорошо работает при прокрутке, я полагаю, что она работает при прокрутке вниз и не работает при прокрутке вверх. Это означает, что ваша первая ячейка была перерисована после второй, прокручивая ее до нижней части (где вторая ячейка не покрывает вашу первую ячейку) и наоборот при прокрутке вверх (где вторая ячейка закрывает вашу первую ячейку).

+0

Спасибо для вашего комментария. На самом деле это была проблема с высотой ячейки. Я просто увеличиваю его с 130 до 132, и он работает как шарм. Мой плохой я не мог думать об этом, прежде чем приехать сюда :) Также UIView не вышел из нижнего края Cell в доске истории. Для «разделительной линии ячейки» это действительно видно, но я сделал снимок экрана, чтобы он не был виден. Что я имел ввиду при прокрутке, так это то, что если бы я даже переместил его 1px, ячейка была перерисована, а нижний угол показал ОК. В любом случае спасибо за указание проблемы. – Dropocol

Смежные вопросы