横向模式下 UITextField 中间出现奇怪的黑条
Strange black bar in middle of UITextField in landscape mode
我已经尝试通过视图调试器对其进行调试,但仍然无法检测到其中的原因。
TextField 有以下自定义 class 如果可能有一些隐藏的问题
class ChatTextField: UITextField {
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
initNib()
}
override init(frame: CGRect) {
super.init(frame: frame)
initNib()
}
func initNib() {
self.attributedPlaceholder = NSAttributedString(string: "Send a message to Kael",
attributes: [NSAttributedString.Key.foregroundColor: #colorLiteral(red: 0.1879999936, green: 0.1979999989, blue: 0.2930000126, alpha: 1)])
self.layer.borderWidth = 2
self.layer.cornerRadius = 4.0
self.layer.borderColor = #colorLiteral(red: 0.3059999943, green: 0.5329999924, blue: 0.5490000248, alpha: 1)
self.addInnerShadow(onSide: .all, shadowColor: UIColor(red: 0, green: 0, blue: 0, alpha: 0.2), shadowSize: 10, cornerRadius: 15, shadowOpacity: 0.8)
}
let padding = UIEdgeInsets(top: 0, left: 20, bottom: 0, right: 30)
override open func textRect(forBounds bounds: CGRect) -> CGRect {
return bounds.inset(by: padding)
}
override open func placeholderRect(forBounds bounds: CGRect) -> CGRect {
return bounds.inset(by: padding)
}
override open func editingRect(forBounds bounds: CGRect) -> CGRect {
return bounds.inset(by: padding)
}
}
您正在从 UITextField
扩展的 initNib()
方法中调用一个方法来提供内部阴影。
您必须根据纵向和横向模式设置不同的 offset
来修改阴影方法。
尝试删除将阴影应用到文本字段的阴影方法,然后检查它是否正常工作。
我已经尝试通过视图调试器对其进行调试,但仍然无法检测到其中的原因。
TextField 有以下自定义 class 如果可能有一些隐藏的问题
class ChatTextField: UITextField {
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
initNib()
}
override init(frame: CGRect) {
super.init(frame: frame)
initNib()
}
func initNib() {
self.attributedPlaceholder = NSAttributedString(string: "Send a message to Kael",
attributes: [NSAttributedString.Key.foregroundColor: #colorLiteral(red: 0.1879999936, green: 0.1979999989, blue: 0.2930000126, alpha: 1)])
self.layer.borderWidth = 2
self.layer.cornerRadius = 4.0
self.layer.borderColor = #colorLiteral(red: 0.3059999943, green: 0.5329999924, blue: 0.5490000248, alpha: 1)
self.addInnerShadow(onSide: .all, shadowColor: UIColor(red: 0, green: 0, blue: 0, alpha: 0.2), shadowSize: 10, cornerRadius: 15, shadowOpacity: 0.8)
}
let padding = UIEdgeInsets(top: 0, left: 20, bottom: 0, right: 30)
override open func textRect(forBounds bounds: CGRect) -> CGRect {
return bounds.inset(by: padding)
}
override open func placeholderRect(forBounds bounds: CGRect) -> CGRect {
return bounds.inset(by: padding)
}
override open func editingRect(forBounds bounds: CGRect) -> CGRect {
return bounds.inset(by: padding)
}
}
您正在从 UITextField
扩展的 initNib()
方法中调用一个方法来提供内部阴影。
您必须根据纵向和横向模式设置不同的 offset
来修改阴影方法。
尝试删除将阴影应用到文本字段的阴影方法,然后检查它是否正常工作。