#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)