1

私はiPhoneを初めて使用します。アプリケーションには、スクロールビューにある10個のテキストフィールドがあります。私が必要とするのは、ユーザーがテキストフィールドに触れたときに、スクロールビューがそのようにスクロールする必要があるため、テキストフィールドがキーボードの後ろに表示されないようにすることです。

助けて。

親切に助けてくれてありがとう。

4

1 に答える 1

1

このようにテキストフィールドデリゲートメソッドをオーバーライドします

- (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;
}
于 2012-09-04T19:38:02.740 に答える