Это толкает меня. У меня есть UIView (назовите его "parent" ). В нижней части этого представления находится UIImageView (назовите его "child" ), чей фрейм занимает всю полноту "родительских" границ.
Я хочу обогнуть углы на "родительском" представлении и установить тень. Я делаю это на CALayer
"родителя", как обычно:
[[parent layer] setShadowOffset:CGSizeMake(5, 5)];
[[parent layer] setShadowRadius:6];
[[parent layer] setShadowOpacity:0.4];
[[parent layer] setCornerRadius:6];
Это показывает тень правильно, но не вокруг углов.
Здесь кикер:
- Если я удаляю представление "дочерний" образ или сокращаю его, чтобы он не занимал все границы "родительского" представления, я получаю закругленные углы и тень правильно на родительском объекте.
- Если я оставляю только "ребенка", но устанавливаю "clipToBounds" в "родительском" представлении, я правильно получаю углы. Но теперь тень ушла.
- Настройка радиуса угла на слое ребенка также не имеет эффекта.
Похоже, что "образ ребенка" просто скрывает закругленные углы на "родительском" представлении, так как он занимает весь прямоугольник, а обрезка на основе родительского представления получает углы, но также маскирует тень. Не знаете, почему № 3 не работает.
Что мне не хватает? Разве я не замечал ничего очевидного, слишком долго смотрел на это?
Спасибо.
(Потрясающе, тег "roundedcorners-dropshadow" уже существует. Awesome.)