#iphone #ipad #uiimageview #uiimage
#iPhone #iPad #uiimageview #uiimage
Вопрос:
Как мне использовать Quartz 2D для добавления тени к UIImage
или UIImageView
?
Есть примеры кода?
Ответ №1:
imageView.layer.shadowColor = [UIColor blackColor].CGColor;
imageView.layer.shadowOffset = CGSizeMake(0, 1);
imageView.layer.shadowOpacity = 1;
imageView.layer.shadowRadius = 1.0;
Не забудьте #import <QuartzCore/QuartzCore.h>
в вашей реализации.
Редактировать:
Добавление в комментарии @Luke’s:
Небольшое уточнение, которое может сэкономить время некоторым другим пользователям, убедитесь, что вы не установили layer.masksToBounds
значение YES
в своем представлении, иначе тень не будет,, появляться.
Комментарии:
1. Тень имеет сплошной черный цвет? Как сделать непрозрачную тень? Спасибо.
2. Вы устанавливаете непрозрачность, изменяя свойство shadowOpacity.
3. Я сделал все это, и ошибка: «Свойство ‘layer’ не найдено для объекта типа ‘UIImage'», что мне делать?
4. @ValKalinic Убедитесь, что платформа QuartzCore добавлена в ваш проект XCode.
5. Небольшое уточнение, которое может сэкономить время некоторым другим пользователям. Убедитесь, что вы не установили masksToBounds в YES для вашего view, иначе тень не появится! layer.masksToBounds = ДА;
Ответ №2:
(void)addShadowToView:(UIView*)view Color:(UIColor*)color ShadowOffset:(CGSize)offset Radius:(float)radius Opacity:(float)opacity
{
view.layer.shadowColor = [color CGColor];
view.layer.shadowOffset = offset;
view.layer.shadowRadius = radius;
view.layer.shadowOpacity = opacity;
}
Использовать:
[calssName addShadowToView:self.navigationController.navigationBar Color:[UIColor blackColor] ShadowOffset:CGSizeMake(1.0f, 0.5f) Radius:1.0 Opacity:0.5];