2011-01-04 7 views
2

私は画面上を動くドットを持っています。スクロールビューの範囲を超えると、ドットが移動してスクロールビューのサイズが大きくなる新しいタイルが作成されます。私はこれを追跡します:負の起点を持つタイルを含むUIScrollView

scrollViewBounds = CGRectUnion(newTileBounds, scrollViewBounds); 
[scrollView setContentSize:scrollViewBounds.size]; 

新しいタイルが非負の起点を持つ限り、これはうまくいきます。新たに作成されたタイルが左境界にあり、負の原点を持つ場合、境界サイズは右側で補償されます。私は、setContentSizeはビューの大きさがどこにあるのかということだけを言っていることを知っています。

私はsetContentOffsetを使ってみましたが、うまく動作していたようですが、スクロールすると正の領域に戻り、負の領域にスクロールできなくなりました。

負の起源のタイルをどのように見えるようにしますか?

答えて

0

コンテンツビューの途中から始め、contentSizeを最大限に設定することができます。この方法では、コンテンツサイズを動的に調整する必要はありません。

+0

問題は、最大サイズがわからないことです。ドットは任意の方向に任意に移動できます。 – Ben

0

技術的には、負の原点はスクロールビュー領域外です。オブジェクトがその領域外に移動する場合は、領域を完全に再作成し、再作成していないようにオフセットを設定してから、コンテンツを表示に移動する必要があります。 (それが理にかなっている場合)、彼らはその方向にスクロールすることがありますようにそれが見えるようにか...

をコンテンツとドットの両方を再配置抽象的に、これはあなたがコンテンツを配置したい方法です:

if(object.origin.x < 0) { 
contentArea.origin.x = -contentArea.bounds.width; 
object.origin.x = contentArea.bounds.width + object.origin.x; 
} 

うまくいけば助けてください!

関連する問題