2016-06-24 5 views
4

Я борюсь с глупой вещью, я думаю ... Вот моя проблема. Я хочу избавиться от своей округлой серой границы, сделав ее скрытой или прозрачной, чтобы мы могли видеть только тени.UITextField без границ и с тенями

Вот моя ситуация: Actual Result

с этим следующим кодом:

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 
} 

Но я хочу этот следующий результат: Final wanted result

Конечно, я думаю, что я могу достичь этого, но встраивать его внутри взгляда, но это совсем не чисто, особенно для такого рода вещей.

Любая идея о том, как достичь этого? Или исправить это?

EDIT 1: Фактический код после предложений. Если это может помочь.

класс `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: Тип границы, когда я создаю его в моей раскадровке. Border type at creation С уважением,

Háry

+0

не пытались ли вы не настройки границ? –

+0

вы можете попробовать, не использовать - закругленная прямоугольная граница, дать borderStyle = UITextBorderStyle.None, а затем дать закругленный прямоугольник textfield.layer.cornerRadius. Я думаю, что это решит вашу проблему. –

+0

textField.borderStyle = UITextBorderStyle.None -> this? Да, но он также избавится от теней ... Просто попробовал то, что вы сказали ... Результат = Нет границы (COOL), но нет Shadows (NOT COOL) –

ответ

1

попробовать это:

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 

, а затем продолжить enter image description here

+0

вы проверили этот код? –

+0

'частное весело 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(). CGColor textField.layer.shadowOffset = CGSizeMake (0.0, 0.0) textField.layer.shadowOpacity = 0.4 } ' Не работает –

+1

Я добавил код. использовать в том же порядке, он работает для меня –

2

Сделано это работать, используя эти строки, концентрируя все на слое:

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 
} 

Спасибо за помощь, ребята!

С уважением,

Háry