2016-02-11 13 views
5

Chciałbym dodać efekt cienia do mojego UITextField obecnie co mam osiągnięcia to: enter image description here
Jak widać cień nie jest zaokrąglana w rogach. Mój kod:iOS zaokrąglone UITextField z cieniem

 mNickname.layer.borderWidth = 1 
     mNickname.layer.borderColor = UIColor.whiteColor().CGColor 
     mNickname.layer.cornerRadius = 3 

     mNickname.layer.masksToBounds = false 
     mNickname.layer.shadowRadius = 3.0 
     mNickname.layer.shadowColor = UIColor.blackColor().CGColor 
     mNickname.layer.shadowOffset = CGSizeMake(1.0, 1.0) 
     mNickname.layer.shadowOpacity = 1.0 
+0

usuń borderColor i borderWidth –

+0

Po ich usunięciu pole tekstowe nie jest już zaokrąglane. –

+0

usunąłeś również cornerRadius? –

Odpowiedz

13

Ok, znalazłem problem. Okazuje się, że używałem prostokąt border:

enter image description here

prawidłowa powinna wynosić:

enter image description here

I kod to:

mNickname.layer.masksToBounds = false 
mNickname.layer.shadowRadius = 3.0 
mNickname.layer.shadowColor = UIColor.blackColor().CGColor 
mNickname.layer.shadowOffset = CGSizeMake(1.0, 1.0) 
mNickname.layer.shadowOpacity = 1.0 

Wynik:

enter image description here

0

Czy próbował tego mNickname.layer.masksToBounds = true;

+0

Po ustawieniu go na wartość true cień nie jest już widoczny. –

1

Spróbuj zmienić shadowOpacity na 0.5 Możesz również wysłać pełną personalizację tego pola tekstowego?

1

spróbować tego, kod jest w celu C, ale sama dla szybkiej

self.textField.layer.shadowColor = [[UIColor blackColor] CGColor]; 
    self.textField.layer.shadowOffset = CGSizeMake(0.0, 1.0); 
    self.textField.layer.shadowOpacity = 1; 
    self.textField.layer.shadowRadius = 0.0; 
+0

Próbowałem, wciąż bez powodzenia. –