私はiPhoneを初めて使用します。アプリケーションには、スクロールビューにある10個のテキストフィールドがあります。私が必要とするのは、ユーザーがテキストフィールドに触れたときに、スクロールビューがそのようにスクロールする必要があるため、テキストフィールドがキーボードの後ろに表示されないようにすることです。
助けて。
親切に助けてくれてありがとう。
このようにテキストフィールドデリゲートメソッドをオーバーライドします
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
[self scrollViewToCenterOfScreen:textField];
}
//このメソッドは、現在選択されているテキスト フィールドを可視ゾーンに移動します
-(void)scrollViewToCenterOfScreen:(UIView *)theView
{
CGFloat viewCenterY = theView.center.y;
CGRect applicationFrame = [[UIScreen mainScreen] applicationFrame];
CGFloat availableHeight = applicationFrame.size.height - 200; // Remove area covered by keyboard
CGFloat y = viewCenterY - availableHeight / 2.0;
if (y < 0) {
y = 0;
}
[scrollview setContentOffset:CGPointMake(0, y) animated:YES];
}
そして、キーボードを閉じたいときは、このデリゲートをオーバーライドします
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
[self.scrollview setContentOffset:CGPointMake(0, 0) animated:YES];
return YES;
}