[英]How to add shadow for MDCTextField?
这是我的代码:
@IBOutlet var txtFirstName: MDCTextField!
var txtFirstNameController: MDCTextInputControllerOutlined?
override func viewDidLoad() {
txtFirstNameController = MDCTextInputControllerOutlined(textInput: txtFirstName)
}
我想在文本字段中添加阴影,但是我找不到方法,我使用的是MaterialComponents
我在这里提到了我测试过的所有方法及其结果:
第一种方式:
class ShadowLayer : MDCTextField{
override class var layerClass: AnyClass {
return MDCShadowLayer.self
}
var shadowLayer: MDCShadowLayer {
return self.layer as! MDCShadowLayer
}
func setDefaultElevation() {
self.shadowLayer.elevation = .cardResting
}
}
第二种方式:
extension MDCTextField {
func elevate(elevation: Double) {
self.backgroundColor = UIColor.white
self.layer.masksToBounds = false
self.layer.shadowColor = UIColor.black.cgColor
self.layer.shadowOffset = CGSize(width: 0, height: elevation)
self.layer.shadowRadius = CGFloat(elevation)
self.layer.shadowOpacity = 1
}
}
选择国家->第一种方式,选择城市->第二种方式
我想要的是下面的图片:
在设置self.layer.masksToBounds = false
之前,尝试设置self.clipsToBounds = true
您的elevate函数应如下所示:
func elevate(elevation: Double) {
self.backgroundColor = UIColor.white
self.clipsToBounds = true
self.layer.masksToBounds = false
self.layer.shadowColor = UIColor.black.cgColor
self.layer.shadowOffset = CGSize(width: 0, height: elevation)
self.layer.shadowRadius = CGFloat(elevation)
self.layer.shadowOpacity = 1
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.