【问题标题】:How to add shadow for MDCTextField?如何为 MDCTextField 添加阴影?
【发布时间】:2019-02-17 13:22:10
【问题描述】:

这是我的代码:

@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

}
}

选择国家->第一路,选择城市->第二路

我想要的是下面的图片:

【问题讨论】:

  • 您是否尝试设置 txtFirstName.layer.masksToBounds = false; txtFirstName.layer.shadowRadius = 3.0; txtFirstName.layer.shadowColor = UIColor.black.cgColor; txtFirstName.layer.shadowOffset = CGSize(宽度: 2.0, 高度: 4.0); txtFirstName.layer.shadowOpacity = 1.0;
  • 是的,但它不起作用...
  • 提供更多相关代码。你试过什么?什么有效?什么没有?任何预期结果的图片?有当前结果的图片吗?
  • 我添加了方式和图片@GustavoVollbrecht
  • 我的结果相同,但我尝试添加白色背景色

标签: ios swift xcode mdc-components


【解决方案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
}

【讨论】:

  • 结果还是和第二种方式一样。阴影离边界还很远。
  • 尝试将其从MDCTextField 应用到.textFieldSearchBar
  • 我不明白你的意思。你能解释更多吗?
  • 阴影远离边框,因为您将它们设置在不同的位置,请尝试在您的 elevate 方法中添加阴影和边框 self
猜你喜欢
  • 2014-10-10
  • 1970-01-01
  • 2021-03-23
  • 1970-01-01
  • 1970-01-01
  • 2013-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多