UIView отрисовывает тень за рамкой вида

У меня есть требование, в котором я должен рисовать тень представления за рамкой представления. У нас уже есть сложная иерархия / наслоение представлений, и теперь невозможно изменить фреймы и макет представления, чтобы учесть тени в границах представления viewController.

1. Меня немного беспокоит, разрешено ли мне рисовать тень за пределами вида , следуя этой методологии:

« Вы также можете создать тень, которая будет основана на альфа-компонент всего, что нарисовано в вашем представлении.Часто это приводит к появлению тени только по краям изображения. Этот пример кода для UILabel:

label.layer.shadowColor = [UIColor blackColor].CGColor;
label.layer.shadowOpacity = 1.0;
label.layer.shadowRadius = 5.0;
label.layer.shadowOffset = CGSizeMake(0, 3);
label.clipsToBounds = NO;

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

Ссылка: http://bynomial.com/blog/?p=52

2. Теперь я наткнулся на темы, которые говорят, что рисование теней вне поля зрения не поощряется. Но никаких объяснений не дается: Как я могу нарисовать тень за пределами UIView?

Есть ли какая-то причина, почему мы не должны рисовать тени (CALayer) за пределами рамки просмотра? Или , все в порядке после первого подхода?

Спасибо, Радж

5
задан Community 23 May 2017 в 12:27
поделиться