Позволяя большим теням кровоточить между ячейками UITableView

#swift #uitableview #cell #shadow

Вопрос:

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

введите описание изображения здесь

ПРИМЕЧАНИЕ. Тень была СИЛЬНО подчеркнута здесь, чтобы показать проблему.

Проблема в том, что я хочу, чтобы тень от моего EMAIL текстового поля смешивалась под ячейкой пароля. т. Е. Я хочу, чтобы оба текстовых поля имели белый фон, но под ними обоими у меня есть тень. Что-то вроде этого:

введите описание изображения здесь

Причина, по которой это является проблемой, заключается в том, что UITableView отображается с верхними ячейками «выше» нижних. Таким образом, любая тень от ячейки в строке 1 будет кровоточить поверх ячеек в строках 2, 3, 4 и т. Д.

Мне было интересно, возможно, есть способ изменить эту визуализацию и вместо этого изменить визуализацию так, чтобы ячейка в строке 4 была на самом деле ВЫШЕ строк 3, 2 и 1.

Или, возможно, есть способ настроить текстовое поле пароля так, чтобы поверх него не отображались тени?

Любая помощь, очень признателен!

Комментарии:

1. Вы пробовали изменить zPosition свойство каждой ячейки? Может быть, это могло бы помочь.

Ответ №1:

Спасибо @Amr за то, что указал мне в направлении cell.layer.zPosition .

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

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

cell.layer.zPosition = CGFloat(indexPath.section) * 1000 CGFloat(indexPath.row)