2011-02-03 2 views
9

Я пытаюсь создать тень вокруг простого объекта UIView, который добавляется поверх представления UIViewController. Какой самый прямой способ сделать это?UIView with shadow

ответ

28

Во-первых, убедитесь, что импортировать библиотеку Quartz Ядро:

#import <QuartzCore/QuartzCore.h> 

Далее добавьте следующие строки, чтобы настроить свойства Тени:

someView.layer.shadowColor = [[UIColor blackColor] CGColor]; 
someView.layer.shadowOffset = CGSizeMake(10.0f,10.0f); 
someView.layer.shadowOpacity = .5f; 
someView.layer.shadowRadius = 10.0f; 

Имейте в виду, что если у вас есть что свойство view'sToBounds установлено в YES, тень не появится.

+0

Право на. Благодаря! Я пробовал это, но я не мог понять, почему он никогда не работал, и действительно проблема заключалась в том, что для свойства clipsToBounds установлено значение YES. Еще один вопрос - что, если я хочу, чтобы тень была на всех четырех сторонах View? Я думаю, что это только позволяет вам иметь 2 стороны в то время, изменяя shadowOffset ... Во всяком случае, еще раз спасибо! – zumzum

+1

Если смещение и радиус равны 10, тень скрывается за некоторым элементом. Если вы хотите, чтобы тень была на всех 4 сторонах someView, измените радиус на большее, чем смещение (или измените смещение на 0, чтобы иметь четную тень вокруг someView). – FuePi

3

Мне потребовалось некоторое время, чтобы понять это. Код работает идеально, но вы должны импортировать кварц

#import <QuartzCore/QuartzCore.h> 
Смежные вопросы