UIScrollView に大きな 16 進スタイルのマップがあり、別のビューに 1/10 スケールの「ミニ マップ」があるゲームを設計しています。ミニ マップには、スクロール ビューで表示される現在の領域を示すために使用される四角形があります。Rectile をメイン マップと同期させるには、どのように配置するのが最適ですか?
質問する
298 次
1 に答える
2
いつでもUIScrollView を取得できますcontentOffset
。この値は UIScrollView デリゲート メソッドで確認できます- (void)scrollViewDidScroll:(UIScrollView *)scrollView
。contentOffset を取得したら、それを UIScrollView のcontentSize
マイナスで割る必要がありますframe.size
。これによりフロートが得られ、そのフロートを使用して、小さいビューでのレクタイルの位置を決定できます。私が話していることを示すために、以下のコードをいくつか示します。x ポジショニングの例を示します。すすぎ、y 位置合わせを繰り返します。
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
CGFloat xRat;
CGFloat xPos;
xRat = scrollView.contentOffset.x/(scrollView.contentSize.width - scrollView.frame.size.width);
}
これxRat
は、スクロール ビューがスクロールしたパーセンテージ (float 形式) です。したがって、xRat を使用して、そのパーセンテージで x 軸に沿って四角形を配置します。
于 2012-12-12T17:26:00.537 に答える