2016-10-26 13 views
0

私はビューの下部に上下のフィールドを持つautolayoutのiPhoneアプリを開発しています。ユーザーはフィールドをタップし、キーボードの上にビューをスクロールする必要があります。ここに私のkeyboardDidShowコードです。キーボードの自動スクロール?

- (void) keyboardDidShow:(NSNotification *)notification 
{ 
    CGSize kbSize = [[[notification userInfo] objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size; 

    UIEdgeInsets contentInsets = UIEdgeInsetsMake(0.0, 0.0, kbSize.height, 0.0); 
    [[self scrollView] setContentInset:contentInsets]; 

    [self setIsKeyboardVisible:YES]; 
} 

はこれが(私は、実際のスクロール命令を出し左)動作してはならないだけでなく、私は上向きの上側のフィールドにビューのスクロールをタップすると、そのフィールドの下には、キーボードの上部にあるまで。キーボードの[次へ]をタップしてカーソルを下のフィールドに移動すると、下のフィールドの下端がキーボードの一番上にくるまで、ビューが少し上にスクロールします。ここで

は、私はリターンキーを扱う方法は次のとおりです。

- (BOOL) textFieldShouldReturn:(UITextField*)textField 
{ 
    switch ([textField tag]) 
    { 
     case vtNameField: 
      [[self txtEmail] becomeFirstResponder]; 

      break; 

     case vtEmailField: 
      [[self txtEmail] resignFirstResponder]; 

      break; 

     default: 
      break; 
    } 

    return NO; 
} 

は、誰もがスクロールを引き起こしているものを知っていますか?私は他のアプリでこの動作を見て、私は手でコード化しなければならないと思った。私はこれを私の一視点で見ています。私が設定した何かが原因であるかどうかは疑問です。

答えて

0

このライブラリを使用すると、非常に簡単でコード不要です。 ビューのクラス名を "TPKeyboardAvoidingScrollView"にするだけで、ビューは自動的にスクロールして、キーボードの上にTextFieldを作成します。

https://github.com/michaeltyson/TPKeyboardAvoiding

関連する問題