0

いくつかのUITextFieldを含むUIScrollViewがあります。ユーザーがテキストフィールドを編集すると、UITextFieldが中央に配置されるようにスクロールします。私が遭遇している問題は、UIScrollViewが正しい場所にスクロールしているが、アニメーションの最後のフレームで300,300にジャンプしていることです。2.2.1では正常に動作しますが、3.0ベータ5では動作しません。常に正確に300,300にジャンプします。奇妙なことに、スクロールビューを同じように移動するreturnScrollAfterEditメソッドを呼び出すと、正常に機能します。これを引き起こす可能性のあるアイデアはありますか?

-(void)scrollViewToCenterOfScreen:(UIView *)field withKeyboard:(bool)withKeyboard {
    CGFloat viewCenterY = field.center.y;  
    CGRect applicationFrame = [[UIScreen mainScreen] applicationFrame];
    CGFloat availableHeight = applicationFrame.size.height-215;

    CGFloat y = viewCenterY-availableHeight / 2.0;

    NSLog([NSString stringWithFormat:@ "w:%fh%f availH:%fy:%fx:%f"、applicationFrame.size.width、applicationFrame.size.height、availableHeight、y、self.contentOffset.x]);

    if(y
4

2 に答える 2

0

これがまさにあなたが探しているものであるかどうかはわかりませんが、UITextViewでもいくつかのクレイジーな問題がありました。ビューでテキストを選択した場合は、フレームの一番下までスクロールします。UITextViewにテキストを追加する前に、scrollEnabledをオフにすることで、これを修正しました。

したがって、コードは次のようになります。

[textarea setText:@""]; //blank out the text to scroll back to the top
[textarea setScrollEnabled:NO]; //disable to avoid scrolling
[textarea setText:@"new text here"]; 
[textarea setScrollEnabled:YES];
[textarea resignFirstResponder]; //to drop annoying blue

これがお役に立てば幸いです。

于 2009-08-18T17:34:43.290 に答える
0

3.0のリリースバージョンで修正されました

于 2011-04-13T16:44:04.727 に答える