2014-04-18 13 views
27

Devo rilasciare un'ombra a destra e in basso di uiview.Im facendo questo nel builder dell'interfaccia.Ma vedo l'ombra cadere in cima.Trovato diverse dimensioni.ma non poteva capisco.Rilasciare un'ombra a destra e nella parte inferiore della visualizzazione di uiv

layer.masksToBound=No 
layer.shadowOpacity=0.15 
layer.shadowRadius=2 
layer.shadowOffSet={10,-10} //Values being set in Interfacebuilder. 

Ancora questa ombra in cima. Cosa devo fare per ottenere in fondo alla vista.

+0

per runtime @ walle84 è la risposta corrent . – Joker

risposta

90

Provate il seguente codice, che potrebbe aiutare a

myView.layer.shadowColor = [UIColor purpleColor].CGColor; 
    myView.layer.shadowOffset = CGSizeMake(5, 5); 
    myView.layer.shadowOpacity = 1; 
    myView.layer.shadowRadius = 1.0; 
    myView.layer.maskToBounds = NO; 

ho provato questo codice e che sta funzionando e l'output è:

enter image description here

+2

Puoi dirmi come aggiungere ombra solo in bttom della vista. –

+4

Invece di 'myView.layer.shadowOffset = CGSizeMake (5, 5);' do 'myView.layer.shadowOffset = CGSizeMake (0, 5);' –

+0

inimageview non riesco ad aggiungere questa ombra. ho codificato come scrivi. –

0

Penso che l'offset dell'ombra non sia corretto. Dovrebbe essere {10, 10} come:

[layer setShadowOffset:CGSizeMake(10 , 10) ]; 
+0

L'ho provato anche. Ma scende solo in alto – Honey

+0

Usa il codice per creare ombre. controllare questo [collegamento] (http://nachbaur.com/blog/fun-shadow-effects-using-custom-calayer-shadowpaths) –

+0

@GauravSingh l'ho usato per disegnare l'ombra per la cella tableview ma dopo averlo fatto scorrere verso l'alto . – user3306145

6

Ciao Ho usato il codice qui sotto, ti fornirà l'ombra che desideri.

UIBezierPath *shadowPath = [UIBezierPath bezierPathWithRect:_viewShadow.bounds]; 
_viewShadow.layer.masksToBounds = NO; 
_viewShadow.layer.shadowColor = [UIColor blackColor].CGColor; 
_viewShadow.layer.shadowOffset = CGSizeMake(10.0f, 5.0f); /*Change value of X n Y as per your need of shadow to appear to like right bottom or left bottom or so on*/ 
_viewShadow.layer.shadowOpacity = 0.5f; 
_viewShadow.layer.shadowPath = shadowPath.CGPath; 

Anche masksToBounds è imp poichè disattiva il ritaglio di sottolivelli che si estendono oltre i limiti della vista. Se lo metti SI allora non vedrai l'ombra mentre taglia il sottolivello dove altrimenti in NO consente di estendere il livello.

+1

Grazie per la tua nota su 'masksToBounds', mi mancava questo. –

1

In Swift 3, CGSizeMake non esiste più. È stato modificato in CGSize(width: 20, height: 10). Così il shadowOffset può essere impostato come questo in Swift 3:

myView.layer.shadowOffset = CGSize(width: 20, height: 10) 
0

ho scoperto che questi valori danno un bel risultato:

myView.layer.shadowColor = UIColor.black.cgColor 
myView.layer.shadowOpacity = 0.25 
myView.layer.shadowRadius = 3 
myView.layer.shadowOffset = CGSize(width: 1, height: 1) // shadow on the bottom right 

enter image description here

Problemi correlati