【发布时间】:2017-10-20 12:37:49
【问题描述】:
这是我的代码
class RoundTextField: UITextField {
override init(frame: CGRect) {
super.init(frame: frame)
customize()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
customize()
}
func customize() {
apply(shadow: true)
}
func apply(shadow: Bool) {
if shadow {
borderStyle = .none
layer.cornerRadius = bounds.height / 2
layer.borderWidth = 1.0
layer.borderColor = UIColor.lightGray.cgColor
layer.shadowColor = UIColor.black.cgColor
layer.shadowOffset = CGSize(width: 0, height: 5.0)
layer.shadowRadius = 2
layer.masksToBounds = false
layer.shadowOpacity = 1.0
} else {
}
}
}
这是问题的详细信息,
- 案例 1:对于上面的代码,我得到一个没有任何边框或阴影的 textField,
- 案例 2:如果我注释前两行,我会得到边框不圆角的阴影效果,并且边框变为默认圆角边框。
borderStyle = .none layer.cornerRadius = bounds.height / 2
我该如何解决这个问题?
【问题讨论】:
-
borderStyle = .none你是在告诉你 textField 不显示边框。试试.line或.bezel或.roundedRect -
你在哪里调用你的 customize() 方法?
-
我怀疑您是否会单独使用
UITextField获得这种外观。您更有可能需要创建一个UIView子类来设置边框、圆角和阴影,并具有一个UITextField子视图。 -
@Magnas:你也试过了,但没有圆角:-(
-
@MikeQiu:抱歉没有更新完整的代码,我已经更新了代码,希望你在那里得到答案。
标签: ios swift swift3 uitextfield