TableView работа с ячейками контентом в них


#1

Когда контроллер загружается впервые все отображается корректно. Как на левой части. Если нажать верхнюю ячейку и вернуться назад то человек с шариком прячется под верхнюю ячейку. И появляется только если нажать на ячейку где человек с шариком. Задача чтоб чел с шариком был бы всегда виден. Опустить его ниже - не подходит по дизайну. Нужно именно чтоб он залазил на верхнюю ячейку.
Буду благодарен за любые идеи.


#2

Я бы предложил вариант “а бы работало” через ScrollView и кастомные View как карточки, но это будет нагружать память, если таких ячеек будет много.
Пробовал найти что-то похожее, но не получилось.
Я уже замечал такое поведение у ячеек, что после клика ячейка меняет свой приоритет по Z координате. Но именно такого дизайна у меня не встречалось, поэтому решения пока не знаю. Но очень бы пригодилось.

Upd. Как идея: просмотрите zPosition у ячеек, до нажатия и после. А потом попробуйте каждой ячейке выставить zPosition больше предыдущей ячейки с шагом 10 (тут нужно подбирать наверное).

Upd2. Еще можно попробовать отключить нажатие у ячеек и сделать нажатие непосредственно внутри самой ячейки через TapGesture на корневой view и передавать нажатие через делегат.

Upd3. Кое-что нашел похожее


Тут как раз-таки предлогают работать с zIndex у слоя ячейки.


#3

Отлично! Есть с чем работать дальше. Благодарю!


#4

Дайте знать пожалуйста, как решите проблему.


#5

Договорились ____________


#6

Решение на удивление элементарным оказалось

if indexPath.row == 1 {
    cell.layer.zPosition = 10
}

Ну а дальше уже настройки по вкусу.


#7

Благодарю.
Но почему бы не сделать так для всех ячеек по нарастающей? Вдруг порядок ячеек поменяется в будущем или картинки.


#8

Ну я и говорю что настройки по необходимости дальше можно реализовывать.
Главное что когда нажимаешь ячейку indexPath.row == 0 то indexPath.row == 1 все равно остаются сверху, и не прячется под верхнюю.