21

アプリ起動時のFlipboardのわずかな反転アニメーションに似た目的のものが必要です。Flipboardを起動すると、このわずかな上下の反転が発生し、インターフェイスに慣れていないユーザーに、Flipboardが反転可能であることを示します。

UIScrollViewがあり、スクロール可能であることをユーザーに示すために少しアニメーション化したいと思います。ですから、少し右にスクロールして戻りたいと思います。UIScrollViewにはsetContentOffset:animated:、完了句のないメッセージがあります。2回呼び出すと、アニメーションが表示されないように見えます。連続してアニメーションを作成したい場合はどうすればよいですか?

編集:答えてくれてありがとうLevi。そして、記録のために、私が使用できるものがUIViewAnimationOptionAutoreverse ありUIViewAnimationOptionRepeatます。だから、これは私がそれでうまくいったものです。

CGPoint offset = self.scrollView.contentOffset;
CGPoint newOffset = CGPointMake(offset.x+100, offset.y);

[UIView animateWithDuration:0.5 delay:0 options:UIViewAnimationOptionCurveEaseIn | UIViewAnimationOptionAutoreverse |UIViewAnimationOptionRepeat animations:^{
    [UIView setAnimationRepeatCount: 2];
    [self.scrollView setContentOffset:newOffset animated: NO];
} completion:^(BOOL finished) {
    [self.scrollView setContentOffset:offset animated:NO];
}];
4

2 に答える 2

46

次のようなことを行う場合、scrollView、tableView、またはcollectionViewの場合:

[self.collectionView setContentOffset:CGPointMake(self.collectionView.contentOffset.x+260.0,
                                                  self.collectionView.contentOffset.y)
                             animated:YES];

その後、あなたは戻ってきます:

-(void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView

スクロールが終了したとき。

ユーザーがビューを移動した場合、このコールバックは取得されません。

于 2014-11-03T23:48:22.517 に答える
33

2つのオプション:

1)-(void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollViewデリゲートコールバックを使用する

... animated:NO];2)完成部分のあるアニメーションブロック(with)に入れてみてください。

于 2013-01-02T09:34:35.817 に答える