Skip to content

Objective-Cで、キーボードの状態に合わせてスクロールビューのサイズを変更する方法(iPhone5対応版)

2012年11月9日

キーボード表示のソースコードが短くなったのでメモ。

今まではOSのバージョンとって自分で数値入力してたけど、キーボードのサイズを取ってそれでFIXする形に変更。
これだけで3.5インチ、4インチに対応可能。


- (void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:YES];
    
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
    
}


-(void)keyboardWillShow:(NSNotification*)note
{
    // キーボードの表示完了時の場所と大きさを取得。
    CGRect keyboardFrameEnd = [[note.userInfo objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
    CGRect screenBounds = [[UIScreen mainScreen] bounds];
    float screenHeight = screenBounds.size.height;
    
    [UIView animateWithDuration:0.3
                     animations:^{
        scrollView.frame = CGRectMake(0, 0, keyboardFrameEnd.size.width, screenHeight - keyboardFrameEnd.size.height - 20);
    }];
    
}

- (BOOL)textFieldShouldReturn:(UITextField *)textField{
    
    CGRect screenBounds = [[UIScreen mainScreen] bounds];
    float screenHeight = screenBounds.size.height;
    
    [UIView animateWithDuration:0.2
                     animations:^{
                         scrollView.frame = CGRectMake(0, 0, 320, screenHeight - 20);
                     }];

    [textField resignFirstResponder];
    return YES;
}


広告

From → iPhone開発

コメントする

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。