17

ページングを有効にした水平スクロールUIScrollViewが欲しいのですが。このスクロールビューのページは幅が異なるため、スクロール距離はページごとに異なります。

目標は、さまざまな時点のピッカーを作成することです。例:

|  Now  |  Yesterday evening |  Last Week  |  Last Month  |
    ^              ^                ^              ^           <- stopps here

ここで| Now |は、幅が。よりも小さくなってい| Yesterday evening |ます。この値をページングするとき、スクロールビューは対応する値の中央で停止する必要があります。

それは可能ですか?

4

1 に答える 1

13

確かに可能ですが、自動的にではありません...

UIScrollViewDelegateプロトコルメソッドを実装する必要があると思います。

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{

}

これは、ユーザーがscrollViewで指を動かすのを停止したときに呼び出されるメソッドであり、コンテンツの座標を内部で確認できます。

yourScrollView.contentOffset

次に、page.xのどれがそれに近いかを確認し(作成時に配列に登録するか、scrollViewに追加されたすべてのビューの原点を確認します)、ページのオフセットに移動します(アニメーション付き) )呼び出し:

- (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated
于 2011-02-23T10:39:19.057 に答える