ios - 如何为 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.clipsToBounds = true
设置前尝试设置self.layer.masksToBounds = false
您的提升功能应如下所示:
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
}
推荐阅读
- android - 如何为 Android 保留 3rd 方库?
- php - “回声”会话和注销在同一行
- bazel - Bazel 可选数据属性文件
- python - jupyter 停止代码在 10 秒后运行
- apache-kafka - 如何将消息从 Google Cloud pubsub(gcp)发布到远程运行的 Kafka 主题
- javascript - 通过js中的递归调用更改树结构数据中的父属性
- maven - 带有 java.lang.NoClassDefFoundError 的 itext7 Hello World 示例
- matlab - 接受特定类型的文件 Matlab
- matlab - 请问,如何计算结构字段中元素的数量?
- javascript - 当我单击另一个功能时,如何使按钮单击事件发生?