スクロール ビューを最初からやり直すにはどうすればよいですか?
IE: myUIScrollView
は1000px
広いです。ユーザーはビューをスワイプしてトピックを見つけます。UIScrollView
ユーザーが最後のトピック (トピック 10 など) に到達したときに、逆方向にスクロールせずに最初 (トピック 1) に戻るにはどうすればよいですか?
そのため、ユーザーが望む場合、ビューは永遠に循環し続けます。
スクロール ビューを最初からやり直すにはどうすればよいですか?
IE: myUIScrollView
は1000px
広いです。ユーザーはビューをスワイプしてトピックを見つけます。UIScrollView
ユーザーが最後のトピック (トピック 10 など) に到達したときに、逆方向にスクロールせずに最初 (トピック 1) に戻るにはどうすればよいですか?
そのため、ユーザーが望む場合、ビューは永遠に循環し続けます。
これは、使用する方法です。
- (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated
ユーザーが最後のトピックに到達したことを検出した後。
UIScrollView
トピックをページとしてページングを使用していると仮定しています。トリックは、最後のページを複製することです。次に、ユーザーがスクロールビューの最後のページ (最初のページの複製) にスワイプし、減速が停止したら、コンテンツ オフセットを最初のページに戻します。
これを行う必要があるとき、この投稿を見つけました。ではなくsetContentOffset
inを使用しましたが、どちらの方法でも機能します。scrollViewDidEndDecelerating
scrollRectToVisible
- (void)scrollViewDidEndDecelerating:(UIScrollView *)sender
{
if (scrollView.contentOffset.x == 0) {
[scrollView setContentOffset:contentOffsetOfLastTopic animated:NO];
}
else if (scrollView.contentOffset.x == contentOffsetOfLastPage) {
[scrollView setContentOffset:contentOffsetOfFirstTopic animated:NO];
}
}