2016-06-24 1 views
4

Je me bats avec une chose stupide je suppose ... Voici mon problème. Je veux me débarrasser de ma bordure grise arrondie pour la rendre cachée ou transparente afin de ne voir que les ombres.UITextField sans frontières et avec des ombres

Voici ma situation: Actual Result

avec ce code suivant:

private func styleTextField(textField: UITextField) 
{ 
    textField.borderStyle = UITextBorderStyle.RoundedRect 
    //textField.layer.cornerRadius = 5.0 
    // textField.borderStyle = UITextBorderStyle.None 
    textField.layer.borderWidth = 0.0 
    textField.layer.masksToBounds = false 
    textField.layer.shadowRadius = 4.0 
    textField.layer.borderColor = UIColor.whiteColor().CGColor 
    textField.layer.shadowColor = UIColor.grayColor().CGColor 
    textField.layer.shadowOffset = CGSizeMake(0.0, 0.0) 
    textField.layer.shadowOpacity = 0.4 
    //textField.layer.borderColor = UIColor.clearColor().CGColor 
} 

Mais je veux ce résultat suivant: Final wanted result

Bien sûr, je pense que je peux y arriver, mais l'intégrer à l'intérieur d'une vue, mais ce n'est pas propre du tout surtout pour ce genre de choses.

Une idée sur la façon d'y parvenir? Ou résoudre ce problème?

EDIT 1: Code réel après suggestions. Si cela peut aider.

classe `SignUpViewController: UIViewController {

@IBOutlet weak var facebookButton: UIButton! 
@IBOutlet weak var connectButton: UIButton! 
@IBOutlet weak var passField: UITextField! 
@IBOutlet weak var emailField: UITextField! 
@IBOutlet weak var nomField: UITextField! 
@IBOutlet weak var prenomField: UITextField! 

override func viewDidLoad() { 
    super.viewDidLoad() 


    emailField = self.styleTextField(emailField) 
    passField = self.styleTextField(passField) 
    nomField = self.styleTextField(nomField) 
    prenomField = self.styleTextField(prenomField) 

    self.styleButton(self.connectButton) 
    self.styleButton(self.facebookButton) 
} 


private func styleTextField(textField: UITextField) -> UITextField 
{ 
    textField.borderStyle = UITextBorderStyle.RoundedRect 
    textField.layer.borderWidth = 2.0 
    textField.layer.borderColor = UIColor.clearColor().CGColor 


    textField.layer.masksToBounds = false 
    textField.layer.shadowColor = UIColor.lightGrayColor().CGColor 
    textField.layer.shadowOpacity = 0.5 
    textField.layer.shadowRadius = 4.0 
    textField.layer.shadowOffset = CGSizeMake(0.0, 1.0) 

    return textField 
} 

}`

EDIT 2: Type de frontière quand je crée dans mon storyboard. Border type at creation Cordialement,

Hary

+0

ne vous essayez pas de réglage à la frontière? –

+0

pouvez-vous essayer, ne pas utiliser - bordure rectangle arrondie, donner borderStyle = UITextBorderStyle.None, puis donner rectangle arrondi par textfield.layer.cornerRadius. Je pense qu'il va résoudre votre problème –

+0

textField.borderStyle = UITextBorderStyle.None -> this? Oui mais il faut aussi se débarrasser des ombres ... Juste essayé ce que vous avez dit ... Résultat = Pas de frontière (COOL) mais pas d'ombres (PAS COOL) –

Répondre

1

essayez ceci:

textField.layer.borderColor = UIColor.clearColor().CGColor 
    textField.layer.masksToBounds = false 

    textField.layer.shadowColor = UIColor.blackColor().CGColor 

    textField.layer.shadowOpacity = 1.0 
    textField.layer.shadowRadius = 50.0 

puis continuer enter image description here

+0

avez-vous tester ce code? –

+0

'plaisir privé styleTextField (textField: UITextField) { textField.borderStyle = UITextBorderStyle.RoundedRect textField.layer.borderWidth = 2,0 textField.layer.borderColor = UIColor.clearColor() CGColor textField.layer.masksToBounds. = false textField.layer.shadowRadius = 4.0 textField.layer.shadowColor = UIColor.grayColor(). CGCouleur textField.layer.shadowOffset = CGSizeMake (0,0, 0,0) = 0,4 textField.layer.shadowOpacity } ' ne fonctionne pas –

+1

J'ai ajouté le code. utiliser dans le même ordre, il travaille pour moi –

2

fait le travail en utilisant ces lignes en se concentrant tout sur la couche:

private func styleTextField(textField: UITextField) 
{ 
    textField.borderStyle = UITextBorderStyle.None 
    textField.layer.masksToBounds = false 
    textField.layer.cornerRadius = 5.0; 
    textField.layer.backgroundColor = UIColor.whiteColor().CGColor 
    textField.layer.borderColor = UIColor.clearColor().CGColor 
    textField.layer.shadowColor = UIColor.blackColor().CGColor 
    textField.layer.shadowOffset = CGSizeMake(0.0, 0.0) 
    textField.layer.shadowOpacity = 0.2 
    textField.layer.shadowRadius = 4.0 
} 

Merci pour votre aide les gars!

Cordialement,

Hary