私のアプリには国のリストがあります。ユーザーが国のいずれかをクリックできるようにしたい(Aボタン)と、その地図上でその国をズームする。私は生のpngファイルからの座標を持っていますが、scrollViewsフレームサイズ(幅または高さ)をimageViewsイメージサイズ(幅または高さ)で割った座標にcontentOffSetを掛けた値を設定すると、私が選ぶ国。UIScrollの生の画像から座標をズームインするSwiftのビュー
は、テストの目的のために、私は変数に座標を設定します。ここでは
は、私がこれまで持っているものです。これらはユーザーが選択した内容に基づいて変更されます。また、テスト目的のために、ビューを読み込むと、自動的にアフガニスタンのボタンをクリックすると実行されるコードが実行されます。
@IBOutlet var scrollView: UIScrollView!
@IBOutlet var mapImageView: UIImageView!
override func viewDidLoad() {
var xScale = scrollView.frame.size.width/mapImageView.image?.size.width
var yScale = scrollView.frame.size.height/mapImageView.image?.size.height
var xCord = 3090
var yCord = 1280
scrollView.zoomScale = 3
scrollView.contentOffset = CGPointMake((x * xScale) - (scrollView.bounds.size.width/2), (y * yScale) - (scrollView.bounds.size.height/2))
}
国を表示することもできますので、国のサイズに基づいてzoomScaleを計算するための式を使用します。テスト目的のために私はscrollView.zoomScale = 3
を設定しました。私が拡大しようとしている国はアフガニスタンです。しかし、scrollView.zoomScale
は、ユーザーが選択した国に基づいて変更されることに注意してください。
ここにはmapが使用されています。アフガニスタンは黄色で強調表示されています。
わかりやすくするために、scrollViewには、上にリンクしたマップ画像を保持するimageViewが含まれています。
解説のために、コードは、(生の画像ファイルからの)座標と式(上記のコードではなく書面による)を介して計算された座標に対して汎用でなければなりません。
私の結論は、私が生の画像ファイル(特にマップ画像)から収集した座標を使用して、私が収集した座標に私のscrollViews可視部分を配置する方法です。