Swift创建文本字段阴影代码扩展

时间:2018-08-25 05:39:55

标签: ios swift

我有多个文本字段,但是所有文本字段都具有相同的阴影效果,我需要为该阴影代码使用扩展名,并在viewdid加载中不久使用它。

下面我正在使用的代码

//MARK - Email TextField
        email_textfield.borderStyle = .none
        email_textfield.backgroundColor = UIColor.groupTableViewBackground // Use anycolor that give you a 2d look.

        //To apply corner radius
        email_textfield.layer.cornerRadius = email_textfield.frame.size.height / 2

        //To apply border
        email_textfield.layer.borderWidth = 0.25
        email_textfield.layer.borderColor = UIColor.white.cgColor

        //To apply Shadow
        email_textfield.layer.shadowOpacity = 1
        email_textfield.layer.shadowRadius = 1.0
        email_textfield.layer.shadowOffset = CGSize.zero // Use any CGSize
        email_textfield.layer.shadowColor = UIColor.lightGray.cgColor

        //To apply padding
        let paddingView : UIView = UIView(frame: CGRect(x: 0, y: 0, width: 20, height: email_textfield.frame.height))
        email_textfield.leftView = paddingView
        email_textfield.leftViewMode = UITextFieldViewMode.always  

1 个答案:

答案 0 :(得分:1)

您可以这样创建扩展名

extension UITextField {

    func applyCustomEffect() {
        self.borderStyle = .none
        self.backgroundColor = UIColor.groupTableViewBackground // Use anycolor that give you a 2d look.

        //To apply corner radius
        self.layer.cornerRadius = self.frame.size.height / 2

        //To apply border
        self.layer.borderWidth = 0.25
        self.layer.borderColor = UIColor.white.cgColor

        //To apply Shadow
        self.layer.shadowOpacity = 1
        self.layer.shadowRadius = 1.0
        self.layer.shadowOffset = CGSize.zero // Use any CGSize
        self.layer.shadowColor =
            UIColor.lightGray.cgColor

        self.layer.sublayerTransform = CATransform3DMakeTranslation(20, 0, 0)
    }
}

并按如下所示应用此效果

email_textfield.applyCustomEffect()