我试图通过视图调试器对其进行调试,但仍然无法检测到其原因。

如果可能存在一些隐藏问题,则TextField在自定义类下面

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)
     }
}


ios - 横向模式下UITextField中间的奇怪黑条-LMLPHP

ios - 横向模式下UITextField中间的奇怪黑条-LMLPHP

ios - 横向模式下UITextField中间的奇怪黑条-LMLPHP

最佳答案

您正在调用从initNib()扩展名的UITextField方法给内部阴影的方法。

您必须通过根据纵向和横向模式设置不同的offset来修改阴影方法。

尝试删除您的阴影方法,该方法会将阴影应用于文本字段,然后检查其是否正常工作。

关于ios - 横向模式下UITextField中间的奇怪黑条,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59890899/

10-13 01:00