在網(wǎng)上看了好多方法,但是實(shí)踐后都不可以完美解決問題鄙币。
這里解決的需要整合一些方法進(jìn)行完美解決問題山析。
需要新建一個(gè)UITextField的子類,重寫以下方法:
override func textRect(forBounds bounds: CGRect) -> CGRect {
let originalBounds = super.textRect(forBounds: bounds)
return originalBounds.insetBy(dx: 0, dy: 3)
}
override func editingRect(forBounds bounds: CGRect) -> CGRect {
let originalBounds = super.editingRect(forBounds: bounds)
return originalBounds.insetBy(dx: 0, dy: 3)
}
這兩個(gè)方法可以解決當(dāng)輸入超出范圍時(shí)文字下移問題肤晓。
override func layoutSubviews() {
super.layoutSubviews()
for view in self.subviews {
if let scrollview = view as? UIScrollView {
var offset = scrollview.contentOffset
if offset.y != 0 {
offset.y = 0
scrollview.contentOffset = offset
}
break
}
}
}
重寫layoutSubviews將scrollview的contentOffset有偏移的設(shè)置為0,可以解決當(dāng)刪除時(shí)下移問題拱燃。
重寫這幾個(gè)方法就可以完美解決下移問題碎浇。