バグがあり、2 時間以上調べていますが、まだ原因がわかりません。スクローラービューに登録フォームがあり、キーボードがテキストフィールドの邪魔になるとスクロールダウンします(編集が開始されたときに呼び出される機能)。バグが発生するコード セグメントは次のとおりです。
CGPoint scrollerOffset = scroller.contentOffset;
UITextField *currentTextField = sender;
CGPoint textFieldOrigin = currentTextField.frame.origin;
if (scrollerOffset.y < textFieldOrigin.y) {
scrollerOffset.y = textFieldOrigin.y - currentTextField.frame.size.height;
NSLog(@"Offset: %f",scrollerOffset.y);
[scroller setContentOffset:scrollerOffset animated:YES];
}
ここからが楽しみの始まりです。
このようなシミュレーターを使用して Phone Nr フィールド内をクリックすると、NSLog は scrollerOffset.y に対して 590.000 を表示し、横の画像が示すように、テキスト フィールドがスクロールビューの一番上までジャンプします。
しかし、このようなシミュレーターを使用して Phone Nr フィールド内をクリックすると、NSLog は再び 590.000 を表示しますが、スクロールビューはジャンプしてテキスト フィールドを表示しません...
編集:スクロールをアニメーション化しないと、完全に機能し、アニメーション化されたときにのみバグが発生します。