1 ページだけであっても常にバウンスさせるにはUIScrollView
、次の行を追加します。
[self.scrollView setAlwaysBounceHorizontal:YES];
contentSize
もちろん、の縮小に関する私のコメントに加えて。
編集:
OK、最初に達成したいことを説明しましょう。ユーザーが のページ間を楽しそうにスクロールしているUIScrollView
と、突然、 をUIScrollView
現在のページ (最初のページである場合もそうでない場合もあります) に固定する必要があります。
私たちUIScrollView
のページはレイアウトされており、各ページは単一UIView
またはそのサブクラスで表されます(サブビュー自体を持つ場合があります):
ここで、説明したタスクを実行するためのコードを次に示します。
CGFloat pageWidth = _scrollView.bounds.size.width;
int currentPage = (_scrollView.contentOffset.x / pageWidth);
[_scrollView setContentSize:CGSizeMake(pageWidth, _scrollView.contentSize.height)];
// move each page to the left:
for (UIView* page in _scrollView.subviews) {
[page setFrame:CGRectOffset(page.frame, -currentPage * pageWidth, 0)];
}
注:複雑なビュー階層がある場合は、すべてのページとUIView
同じ境界サイズを持つでラップするだけです。残りは読者の演習として残します(私はいつもxDと言いたかったです)_scrollView.contentSize