Подсветка UITableViewCell перекрывает мои пользовательские представления - PullRequest
0 голосов
/ 08 мая 2019

У меня есть пользовательский UITableViewCell в моем приложении. Я добавляю представление в ячейку при инициализации.

class RestaurantCell: ListTableViewCell {
    public let stripeView: UIView = UIView()

    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
        super.init(style: style, reuseIdentifier: reuseIdentifier)

        addSubview(stripeView)
    }
}

Теперь, когда пользователь касается приложения, серая подсветка будет перекрывать мой пользовательский вид, но не textLabel или detailTextLabel. Чтобы это исправить, я попытался добавить stripeView выше textLabel или selectedBackgroundView. Это не исправило это. Есть идеи?

Ответы [ 2 ]

0 голосов
/ 08 мая 2019

Так что, как выясняется, вид не исчезает. UITableViewCell просто устанавливает свойство backgroundColor каждого UIView в ячейке.

Добавив код ниже, добился цели.

override func setSelected(_ selected: Bool, animated: Bool) {
    let color = stripeView.backgroundColor
    super.setSelected(selected, animated: animated)

    if selected {
        stripeView.backgroundColor = color
    }
}

override func setHighlighted(_ highlighted: Bool, animated: Bool) {
    let color = stripeView.backgroundColor
    super.setHighlighted(highlighted, animated: animated)

    if highlighted {
        stripeView.backgroundColor = color
    }
}
0 голосов
/ 08 мая 2019

Элемент, который вы добавляете, должен также быть дочерним по отношению к «пользовательскому представлению», чтобы его можно было выделить, можете ли вы проверить, являются ли textLabel и detailTextLabel дочерними?

...