tvOS UITableView в UINavigationController вызывает странное поведение замирания (UIView.mask) - PullRequest
0 голосов
/ 06 февраля 2019

Я столкнулся со странной ситуацией, когда UITableView используется в контексте UINavigationController.

tvOS использует UIView.mask, чтобы применить «градиент затухания» вверху и внизу UITableView,так что ячейки исчезают и исчезают в верхних и нижних краях табличного представления.

Это нормально: маска исчезновения всегда остается в стороне от выбранной ячейки.

(Здесь view.backgroundColor имеет красный цвет, а tableView.backgroundColor имеет синий цвет с 50% альфа. Ограничения tableView установлены в безопасной области.)

enter image description here

Проблема возникает, когда вы помещаете свой контроллер представления в UINavigationController.Когда выделение находится ближе к вершине, вид маски больше не избегает ячейки, поэтому он выглядит блеклым.Кроме того, когда пользователь прокручивает вниз, маска затухания делает гигантский прыжок вниз, а затем, когда пользователь начинает прокручивать назад, эта маска затухания, похоже, не исчезает:

enter image description here

Для справки, здесь та же самая настройка, но с tableView.mask = nil:

enter image description here

(Все замирания отключены, но вы можете видеть, как ячейки «всплывают» и исчезают в верхней и нижней части таблицы. Вы можете подумать, что можете просто установить tableView.masksToBounds = true, но тогда выбранная ячейка будет обрезанапотому что растет при выборе)

Конечно, я что-то упускаю здесь очевидное?Никто в Apple не помещал табличное представление в навигационный контроллер?

...