0

私は大きなスクロールビューを持っています。ボタンを押すたびに一定のステップでスクロールビューをスクロールしたいだけです。ただし、次のコードを記述すると、スクロール ビューのスクロールが非常にジャギーになります。誰かが理由を説明できますか?

CGPoint lstructCurrentPoint = self.objScrollView.contentOffset;
lstructCurrentPoint.x += 400;

        [UIView animateWithDuration:1.0f
                              delay:0.0f
                            options:UIViewAnimationOptionCurveLinear
                         animations:^{
                             [self.objScrollView scrollRectToVisible:CGRectMake(lstructCurrentPoint.x,
                                                                                lstructCurrentPoint.y,
                                                                                self.objScrollView.bounds.size.width,
                                                                                self.objScrollView.bounds.size.height)
                                                            animated:NO];
                        } completion:^(BOOL finished)
                         {
                         }];

異なる contentOffsets 間のカスタム スクロール速度が必要なため、animated:Yes 引数は使用しません。

4

5 に答える 5

1

アニメーションでスクロールしているときに scroolview コンテンツ フレームを更新すると、既に変更されている過去のものを更新しようとするようなものです... (おそらくそれは最良の説明ではありません :D )

アニメーションオプションでこれを試してください:

options:UIViewAnimationOptionCurveLinear|UIViewAnimationOptionBeginFromCurrentState
于 2013-06-15T08:32:51.597 に答える
0

scrollRectToVisible アニメーションは、それ自体がアニメーションです。

現在のコードでは、アニメーションをアニメーション化しようとしています。

したがって、ぎくしゃくしています。

四角形を表示するためにスクロールするだけです:

[self.objScrollView scrollRectToVisible:CGRectMake(lstructCurrentPoint.x,lstructCurrentPoint.y,self.objScrollView.bounds.size.width,self.objScrollView.bounds.size.height) animated:YES];
于 2013-06-15T22:36:49.190 に答える
0

使ってみて

[self.objScrollView setContentOffset: CGPointMame(lstructCurrentPoint.x, lstructCurrentPoint.y) animated: YES];

scrollRectToVisible の代わりに。

于 2013-06-15T13:09:28.590 に答える