【问题标题】:UITextField without borders and with shadows没有边框和阴影的 UITextField
【发布时间】:2016-10-27 03:41:09
【问题描述】:

我想我正在为一件愚蠢的事情而苦苦挣扎......这是我的问题。我想摆脱我的圆形灰色边框,使其隐藏或透明,以便我们只能看到阴影。

这是我的情况:

使用以下代码:

 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
}

但我想要以下结果:

当然,我认为我可以实现这一点,但将其嵌入到视图中,但它根本不干净,尤其是对于这种东西。

关于如何实现这一目标的任何想法?或者修复这个?

编辑 1:建议后的实际代码。如果这有帮助的话。

`class 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
}

}`

编辑 2:我在情节提要中创建边框时的类型。 问候,

哈利

【问题讨论】:

  • 你试过无边框设置吗?
  • 你可以试试,不要使用-圆角矩形边框,给borderStyle = UITextBorderStyle.None,然后通过textfield.layer.cornerRadius给圆角矩形。我想它会解决你的问题
  • textField.borderStyle = UITextBorderStyle.None --> 这个?是的,但它也摆脱了阴影......刚刚尝试了你所说的......结果=无边框(酷)但没有阴影(不酷)
  • 你试过'UIColor(red: 1, green: 1, blue: 1, alpha: 1)'而不是'white-color'吗?有时会有所作为。
  • 不工作太...似乎无论我给它什么颜色都不会改变。

标签: ios swift uitextfield border shadow


【解决方案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

然后继续

【讨论】:

  • private fun 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 } 不工作
  • 我已经添加了代码。以相同的顺序使用,它对我有用
  • @NitinGohel 是的。
  • @S.Hary 我添加了截图。
  • @S.Hary 我不会将borderwidth设置为0
【解决方案2】:

SWIFT 4.2 更新:

通过将所有内容集中在图层上,使用这些行使其工作:

private func styleTextField(textField: UITextField){
    textField.borderStyle = .none
    textField.layer.masksToBounds = false
    textField.layer.cornerRadius = 5.0;
    textField.layer.backgroundColor = UIColor.white.cgColor
    textField.layer.borderColor = UIColor.clear.cgColor
    textField.layer.shadowColor = UIColor.black.cgColor
    textField.layer.shadowOffset = CGSize(width: 0, height: 0)
    textField.layer.shadowOpacity = 0.2
    textField.layer.shadowRadius = 4.0
}

感谢你们的帮助!

问候,

哈利

【讨论】:

    【解决方案3】:

    Swift 4.2 代码是 IBDesignable Shadow 类,可轻松与故事板一起使用并查看所有更改

    @IBDesignable
    class CustomTextfiled: UITextField {
    
    override func awakeFromNib() {
        super.awakeFromNib()
    }
    
    override func layoutSubviews() {
        super.layoutSubviews()
    }
    
    
    @IBInspectable var borderColor: UIColor = UIColor.black {
        didSet {
    
            layer.borderColor = borderColor.cgColor
            borderStyle = UITextField.BorderStyle.none
            layer.masksToBounds = false
            layer.cornerRadius = 5.0;
            layer.backgroundColor = UIColor.white.cgColor
            layer.borderColor = UIColor.clear.cgColor
            layer.shadowColor = borderColor.cgColor
            layer.shadowOffset = CGSize(width: 0, height: 0)
            layer.shadowOpacity = 0.15
            layer.shadowRadius = 4.0
    
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-20
      • 1970-01-01
      • 2021-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多