2017-01-19 13 views
0

現在、複数のテキストフィールドと2つのテキストビューを1つのスクロールビューで使用しているアプリケーションで作業しています。キーボードの登場で、フィールドを隠すことができないように、スクロールビューのコンテンツインセットを変更することができました。私が抱えている問題は、ハードコーディングされた1つのフィールドでしか動作しないということです。私はそれを選んでアニメーション化しなければならない。 keyboardWillShowに送信者フィールドまたはテキストビューを表示するにはどうしますか?現在、私はこれを使用していて、言及されている以外はすべて1つのフィールドdetailsTxtViewを選択してアニメーション化しなければなりません。どんな助け? iOS版で通知センターの送信者が表示されますキーボードが表示されます

NotificationCenter.default.addObserver(self, selector: #selector(self.keyboardWillShow(notification:)),name: NSNotification.Name.UIKeyboardWillShow, object: nil) 

func keyboardWillShow(notification: NSNotification) { 
    if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue { 
     let contentInsets: UIEdgeInsets? = UIEdgeInsetsMake(0.0, 0.0, keyboardSize.height, 0.0) 
     scrollView.contentInset = contentInsets! 
     scrollView.scrollIndicatorInsets = contentInsets! 
     let goto = CGPoint(x: CGFloat(0.0), y: CGFloat(detailsTxtView.frame.origin.y + (keyboardSize.height + 40))) 
     scrollView.setContentOffset(goto, animated: true) 
    } 

} 

答えて

1

あなたはUIResponder.isFirstResponderとキーボードフォーカスを(すべてのUIViewsはUIResponderを継承に注意し、そのすべてのビューにその性質)を持つ人を理解することができます。 isFirstResponder = trueのフィールドを確認し、そのフィールドにスクロールしてください。それはあなたがそれらの多くを持っている場合はアウトレットのコレクションにすべてのフィールドを入れるために便利なので、それらを繰り返し、どれがisFirstResponderかを理解することができます。

+0

ありがとうございました。将来の多くのプロジェクトでその知識を活用します – user1881482

関連する問題