ベース イメージ UIImageView (この場合は大きな建物またはサイト プランまたはダイアグラム) を持つ iPad アプリケーションがあり、プランの上に複数の「ピン」を追加できます (視覚的には Google マップに似ています)。これらのピンも UIImageViews であり、タップ ジェスチャでメイン ビューに追加されます。基本イメージは、viewDidLoad のメイン ビューにも追加されます。
ズーム用のピンチ ジェスチャで動作するベース イメージがありますが、明らかにベース イメージをズームすると、すべてのピンがメイン ビューの同じ x 座標と y 座標にとどまり、ベース イメージ (x、y および幅、高さの座標が変更されました)。
これまでのところ、私はこれを持っています...
- (IBAction)planZoom:(UIPinchGestureRecognizer *) recognizer;
{
recognizer.view.transform = CGAffineTransformScale(recognizer.view.transform, recognizer.scale, recognizer.scale);
recognizer.scale = 1;
for (ZonePin *pin in planContainer.subviews) {
if ([pin isKindOfClass:[ZonePin class]]){
CGRect pinFrame = pin.frame;
// ****************************************
// code to reposition the pins goes here...
// ****************************************
pin.frame = pinFrame;
}
}
}
ピンの x/y 座標を再配置して、ズームインまたはズームアウトした平面図/ダイアグラムの相対的な位置を保持するための計算を支援する必要があります。ピンは明らかに、幅や高さに関してまったくスケーリング/ズームしたくありません。必要なのは、平面図の初期位置に相対的な新しい x 座標と y 座標だけです。
私は自分で数学を計算しようとしましたが、それを実行するのに苦労しており、残念ながら、SDK に十分に精通しておらず、役立つ組み込みのプロビジョニングがあるかどうかを知ることができません。
この数学関連の問題のヘルプをいただければ幸いです。:)
どうもありがとう、マイケル。InNeedOfMathTuition.com