2010-04-01 4 views

ответ

12

UIViews имеют CALayers, у которых есть встроенная поддержка тени. Попробуйте эти свойства:

view.layer.shadowColor 
view.layer.shadowOffset 
view.layer.shadowOpacity 
view.layer.shadowRadius 

Это может привести к быстрому потреблению. Возможно, вам понадобится #import <QuartzCore/QuartzCore.h>, чтобы заставить компилятор понять, что происходит.

+0

был в состоянии понять это. Благодаря! – user288225

+4

Уход за публикацией вашего решения? Принятый ответ, похоже, не работает для меня, как написано. – typeoneerror

+1

фантастический! Если бы вы были женщиной, которую я бы предложил сейчас! :-) спасибо! – SpaceDog

7

решение было бы как

[myTextBox.layer setShadowColor:[[UIColor blackColor] CGColor]]; 
[myTextBox.layer setShadowOffset:CGSizeMake(1.0, 1.0)]; 
[myTextBox.layer setShadowOpacity:1.0]; 
[myTextBox.layer setShadowRadius:0.3]; 

, но это просто работает на OS 3.2 и выше.

1

Я бы добавил представление, которое сидит за текстовым полем и применит к нему теневые эффекты. Таким образом, тень не перемещается с содержимым.

2

Вот скор версия:

func applyDropShadow() { 
    textView.layer.shadowColor = UIColor.blackColor().CGColor 
    textView.layer.shadowOffset = CGSizeMake(3, 3) 
    textView.layer.shadowOpacity = 0.7 
    textView.layer.shadowRadius = 8.0 
    textView.clipsToBounds = false 

} 
+0

Благодарим вас за это - без клипов. Для меня тень не появлялась для меня. – BeneGal

Смежные вопросы