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
解决方案
你可以像这样创建扩展
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()
推荐阅读
- forms - 使用 ColdFusion 将外来字符转换为标准英语
- angular - 如何预览和切换在 Angular 应用程序中设计的报表?
- java - 如何跳过 Boundless 的下载?(行家)
- windows-firewall - Azure IMDS:防火墙规则仅授予本地系统管理员访问权限以获取托管标识令牌
- php - 在 PHP 中按顺序突出显示不同的单词
- python - 如何用 sqlite3 存储二维数组?
- intellij-idea - PyCharm:拆分窗口,然后在**当前**窗口中导航?
- firebase - 如何在 Firebase 测试实验室的登录页面上使用 Sms OTP?
- spring-boot - Spring Security——通过密码和临时密码登录
- td-engine - TDengine 报告“数据库错误:无效的表 ID”