私は動的な高さのテキストビューを持っています。ユーザーがテキストを追加または削除すると、テキストビューの高さが変化します。編集時にキーボードの上にテキストビューを表示するSwift
私の問題は、ユーザーがテキストを追加してテキストビューが大きくなるにつれて、キーボードの後ろに消えることです。キーボードが表示されたときにビューを移動して、テキストビューを最初から隠していましたが、高さの変更に合わせてキーボードの上に保持する方法がわからないようです。どんな助けでも大歓迎です!
機能キーボードが表示され、消えたときにビューを移動するには:
func keyboardWillShow(sender: NSNotification) {
let info: NSDictionary = sender.userInfo!
let value: NSValue = info.valueForKey(UIKeyboardFrameBeginUserInfoKey) as! NSValue
let keyboardSize: CGSize = value.CGRectValue().size
let contentInsets: UIEdgeInsets = UIEdgeInsetsMake(0.0, 0.0, keyboardSize.height + 20, 0.0)
scrollView.contentInset = contentInsets
var aRect: CGRect = self.view.frame
aRect.size.height -= keyboardSize.height
let activeTextFieldRect: CGRect? = activeItemRect()
let activeTextFieldCentre: CGPoint? = CGPointMake(CGRectGetMidX(activeTextFieldRect!), CGRectGetMidY(activeTextFieldRect!))
if (!CGRectContainsPoint(aRect, activeTextFieldCentre!)) {
scrollView.scrollRectToVisible(activeTextFieldRect!, animated:true)
}
}
func keyboardWillHide(sender: NSNotification) {
let contentInsets: UIEdgeInsets = UIEdgeInsetsZero
scrollView.contentInset = contentInsets
}
あなたのtextViewは何に含まれていますか?テーブルビューの場合は、http://stackoverflow.com/questions/18368567/uitableviewcell-with-uitextview-height-in-ios-7 – sschale
を参照してください。テーブルビューではありません。テキストフィールドはコンテンツビューのサブビューであり、コンテンツビューは元のビューの内側にあるスクロールビューのサブビューです。しかし、ありがとう! – m1234