iOS: как отбрасывать тень на несколько UIViews / UIViewControllers - PullRequest
0 голосов
/ 18 декабря 2018

ПРИМЕЧАНИЕ. Меня не интересует, как нарисовать тень на UIView.Это уже сделано, и код также показан ниже.

У меня есть UITableView, который содержит серию разделов.

Каждый Section имеет свой собственный UIView как HeaderView.

Каждая Section имеет одну ячейку, которая встроена в UIViewController (UIView контроллера, но это детали реализации, поскольку та же проблема возникает с обычными ячейками безcontent)

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

Структура выглядит примерно так

UITableView
-> HeaderView
-> TableViewCell
--> View With Shadow with Blur 24
-> HeaderView
-> TableViewCell
--> View With Shadow with Blur 24
-> HeaderView
-> TableViewCell
--> View With Shadow with Blur 24

Проблема:

Тень рисуется в виде / ячейке, но не отрисовывается поверх других заголовков / ячеек.

Я бы сказал, что это нормальное поведение.

Я хотел бы отбросить тень за пределы ячейки.

clipToBound и maskToBound уже установлены в false (по умолчанию для каждого UIView)

Чтов настоящее время выглядит как :

Вы можете видеть, что тень обрезана в конце ячейки и неая в заголовке раздела до или после ячейки

problemImage

Чего я пытаюсь достичь :

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

toachieve

Примечания :

Я не могу уменьшить радиус размытия, чтобы соответствовать рамке ячейки.Мне нужно, чтобы оно было таким большим.

Код для тени обычный:

shadowView.backgroundColor = UIColor.clear
shadowView.layer.shadowColor = profileShadowColor.cgColor
shadowView.layer.shadowOffset = CGSize(width: 0, height: 6)
shadowView.layer.shadowOpacity = 0.25
shadowView.layer.shadowRadius = 20
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...