2017-08-28 22 views
0

UITextFieldUITextFieldをクリックするとキーボードの上に移動したいと思っています。ユーザーがテキストフィールドをクリックしたときにUITextFieldをキーボード上に移動

これについて検索しましたが、いくつかの提案は全体ビューを上に移動し、いくつかの提案はスクロールビューを追加することです。

しかし、私はscrollviewを使いたくありません。

どうすればいいですか? https://github.com/hackiftekhar/IQKeyboardManager

それは簡単に統合し、楽にする:

+1

あなたがやりたいことができます。テキストフィールドを移動し、テキストフィールドを含む全体のビューを移動するか、scrollViewを使用します。 'UIScrollView'を使いたくない場合は、ビューまたはテキストフィールドを含むビューを移動してください。あなたが何を求めているのかは分かりません。 – Ryan

答えて

0

UITextFieldの下限を指定します。keyboardWillShowでキーボードの高さを検出したときに、UITextFieldの下限の制約をKeyboardHeightに増やします。

次のコードをViewWillAppearに入れてください。

[[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(keyboardWillShow:) 
               name:UIKeyboardWillShowNotification 
               object:nil]; 

そしてViewWillDisappearにコードの下に置きます。

[[NSNotificationCenter defaultCenter] removeObserver:self 
                name:UIKeyboardWillShowNotification 
                object:nil]; 

方法

- (void)keyboardWillShow:(NSNotification *)notification 
{ 
    // Get the size of the keyboard. 
    CGSize keyboardSize = [[[notification userInfo] objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size; 

    int keyboardHeight = MIN(keyboardSize.height,keyboardSize.width); 

    textBottom.constant = 0.0f; 

    for (UIView *vw in commentView.subviews) { 
     if ([vw isKindOfClass:[UITextField class]]) { 
      txtComment = (UITextField *)vw; 
      textBottom.constant = keyboardHeight; 
     } 
    } 
} 
-1

は、ここに1つの素晴らしいソリューションです。

各UIViewControllerでUIScrollViewを使用する必要はありません。

+0

私はIQKeyboardManagerを使いたくありません。 –

関連する問題