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

标签: iosswift

解决方案


你可以像这样创建扩展

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()

推荐阅读