繁体   English   中英

如何为MDCTextField添加阴影?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM