Невозможно установить угловой радиус И тень на слое, у которого вид изображения растянут до его границ ?

Это меня ставит в тупик. У меня есть UIView (назовите его «родительским»). Самым нижним подвидом этого представления является UIImageView (назовите его «дочерним»), чей фрейм занимает всю «родительскую» границу.

Я хочу скруглить углы на «родительском» представлении и установить тень . Я делаю это на CALayer "parent", как обычно:

[[parent layer] setShadowOffset:CGSizeMake(5, 5)];
[[parent layer] setShadowRadius:6];
[[parent layer] setShadowOpacity:0.4];    
[[parent layer] setCornerRadius:6];

Это показывает тень правильно, но не закругляет углы.

Вот что интересно:

  1. Если я удалю «дочерний» вид изображения или уменьшу его так, чтобы оно не занимало все границы «родительского» вида, я правильно получу закругленные углы и тень на родительском .
  2. Если я оставлю «дочерний элемент» в покое, но установлю «clipsToBounds» в «родительском» представлении, я получу углы правильно. Но теперь тень исчезла.
  3. Установка радиуса угла на слое дочернего элемента также, похоже, не имеет никакого эффекта.

Кажется, что вид «дочернего» изображения просто затемняет закругленные участки. углы на «родительском» виде, так как он занимает весь прямоугольник, а отсечение на основе родительского вида получает углы, но также маскирует тень. Не знаю, почему не работает №3.

Что мне не хватает? Не упустил ли я что-то очевидное, глядя на это слишком долго?

Спасибо.

(Удивительно, но тег «Roundcorners-drophadow» уже существует. Отлично.)

18
задан Matt Long 20 September 2010 в 15:46
поделиться