2010-04-01 10 views

risposta

12

Uiviews dispongono di CALayer, con supporto shadow incorporato. Prova queste proprietà fuori:

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

Questo potrebbe farti quello che ti serve abbastanza rapidamente. Potrebbe essere necessario #importare <QuartzCore/QuartzCore.h> per far capire al compilatore cosa sta succedendo.

+0

è stato in grado di capirlo. Grazie! – user288225

+4

Cura di pubblicare la soluzione? La risposta accettata non sembra funzionare per me come scritto. – typeoneerror

+1

fantastico! Se tu fossi una donna, proporrei ora! :-) grazie! – SpaceDog

7

la soluzione sarebbe come

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

, ma questo solo funziona per OS 3.2 e superiori.

1

Vorrei aggiungere una vista che si trova dietro il campo di testo e applicare gli effetti ombra a quello. In questo modo l'ombra non si muove con il contenuto.

2

Qui è la versione rapida:

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

Grazie per questo - senza clipsToBounds l'ombra non mi appariva. – BeneGal