4

最新のプロジェクトにはレベル マップ ビューがあります。UICollectionViewCells としてのレベル マーカーと、楽しい装飾用のさまざまな UICollectionReusableViews が含まれています。

ズームイン/アウトできるようにしたいと思います(大きな地図です)。そのために内部 UIScrollView を利用できることを望んでいましたが、自分でズームすることはできません...サブビューのみです。

ズーム時に各要素を個別にスケーリングして再配置する以外に、これを行う方法はありますか? それは一般的なことであり、より「組み込み」のソリューションが利用可能であるべきだと感じています。

4

1 に答える 1

0

UICollectionView を UIScrollView に埋め込むことを考えたことはありますか? やや単純に聞こえますが、私は同様の問題に遭遇し、これを試してみましたが、うまくいきました。

UICollectionView のフレームを独自のコンテキスト サイズ (UICollectionViewLayout から collectionViewContentSize を呼び出す) に設定する必要があるため、collectionView はもうスクロールしません。セルの再利用もすべて無効にするため、これはおそらくあなたが望むものではありません。しかし一方で、スクロールのたびに dequeueReusableCellWithReuseIdentifier: を呼び出すよりも、すべてのビューを事前にレンダリングする方が安価で高速なユースケースがあります。おそらく、あなたの地図アプリケーションはそのようなものから恩恵を受けることができます.

外側のスクロール ビューがズームのみを行い、コレクション ビューがスクロールを担当する、より洗練されたソリューションが可能であると確信しています。UIScrollView をサブクラス化し、panGestureRecognizer に対して nil を返すとうまくいくかもしれませんが、これは単なる推測です。

于 2014-02-01T12:03:38.020 に答える