Странная черная полоса в середине UITextField в ландшафтном режиме - PullRequest
0 голосов
/ 24 января 2020

Я пытался отладить его с помощью отладчика представления, но все еще не смог определить причину этого.

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

Strange bklack bar in middle of UITextField

View debugger

Storyboard UI

1 Ответ

2 голосов
/ 24 января 2020

Вы вызываете метод, чтобы дать внутреннюю тень от метода initNib() расширения UITextField.

Вам придется изменить метод тени, установив различные offset в соответствии с портретом и ландшафтный режим.

Попробуйте удалить метод тени, который будет применять тень к текстовому полю, а затем убедитесь, что он работает правильно или нет.

...