UIView рисует тень за рамкой вида - PullRequest
5 голосов
/ 30 ноября 2011

У меня есть требование, при котором я должен рисовать тень вида за рамкой вида.У нас уже есть сложная иерархия / слоистость вида, и теперь было бы невозможно изменить рамки и компоновку вида для размещения теней в пределах границ представления 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 было НЕТ, чтобы тень за рамкой вашего вида появлялась. Далее я покажу вам, как на самом деле можно комбинировать закругленные углы и тени, поскольку я уверен, что это то, что выочень хочу сделать сейчас."

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

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

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

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

1 Ответ

6 голосов
/ 30 ноября 2011

Я не вижу абсолютно никакой причины не рисовать тень таким образом, и это, честно говоря, единственный способ.Почему вам «не позволено» рисовать тень за пределами границ?Для этого и используется свойство clipsToBounds.

...