我为文本字段设置了插入
class PrimaryTextField: UITextField {
var padding = UIEdgeInsets(top: 0, left: 15, bottom: 0, right: 15)
override open func textRect(forBounds bounds: CGRect) -> CGRect {
return UIEdgeInsetsInsetRect(bounds, padding)
}
override open func placeholderRect(forBounds bounds: CGRect) -> CGRect {
return UIEdgeInsetsInsetRect(bounds, padding)
}
override open func editingRect(forBounds bounds: CGRect) -> CGRect {
return UIEdgeInsetsInsetRect(bounds, padding)
}
}
效果很好,但是当用户在文本字段之间跳转时,文本会弹跳。
问题仅出现在真实设备上,模拟器正常。你有没有想法,如何解决这个问题?
答案 0 :(得分:1)
keyboardWillHide出现问题并显示通知。我在那里制约了约束。我在动画之前添加了下面的代码,文本不再弹跳。
UIView.performWithoutAnimation({
emailTextField.layoutIfNeeded()
passwordTextField.layoutIfNeeded()
})
答案 1 :(得分:0)
您可以创建IBInspectable UITextField
class PaddedTextField: UITextField {
@IBInspectable var padding: CGFloat = 0
override func textRect(forBounds bounds: CGRect) -> CGRect {
return CGRect(x: bounds.origin.x + padding, y: bounds.origin.y, width: bounds.width - padding * 2, height: bounds.height)
}
override func editingRect(forBounds bounds: CGRect) -> CGRect {
return CGRect(x: bounds.origin.x + padding, y: bounds.origin.y, width: bounds.width - padding * 2, height: bounds.height)
}
}
它也适用于iOS设备。
你可以试着告诉我。