UISliderでMKMapViewの縮尺を変更しようと色々と試しているのですが、なぜかシミュレーションでスライダーを動かすと地図がMAXでドアップになってしまいます。スライダーの値の設定をいじったりしているのですが結果は同じになり困っています。色々調べたのですがかなりお手上げ状態です。ヒントでも構いませんのでアドバイスを頂けたらと思います。よろしくお願い致します。
問題のプログラム文は以下です。
//slider2の設定
UISlider *slider2 = [[UISlider alloc]init];
slider2.frame = CGRectMake(115,195,380,23);
slider2.minimumValue = 0.5;
slider2.maximumValue = 1.5;
slider2.Value = 1.0;
CGAffineTransform trans = CGAffineTransformMakeRotation(M_PI * 90 / 180.0f);
slider2.transform = trans;
[slider2 addTarget:self action:@selector(sliderDidChange2:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:slider2];
//slider2のメソッド設定
-(void)sliderDidChange2:(id)sender{
CLLocationCoordinate2D location = mapView1.centerCoordinate;
MKCoordinateRegion cr =
MKCoordinateRegionMake(location, MKCoordinateSpanMake(slider2.value, slider2.value));
[mapView1 setRegion:cr animated:NO];
No.1ベストアンサー
- 回答日時:
> MKCoordinateRegion cr =
> MKCoordinateRegionMake(location, MKCoordinateSpanMake(slider2.value, slider2.value));
ここが問題のようです。
まず、ViewControllerロード時の、MKMapViewのMKCoordinateSpanを保存しておきます。
ViewControllerのインスタンス変数:
CLLocationDegrees laDelta, loDelta;
ViewDidLoadメソッド:
- (void)viewDidLoad {
[super viewDidLoad];
MKCoordinateRegion rg = mapView.region;
MKCoordinateSpan sp = rg.span;
laDelta = sp.latitudeDelta;
loDelta = sp.longitudeDelta;
}
そのうえで、さきほど指摘した2行を書き換えます。
float scaleValue = slider2.value;
MKCoordinateRegion cr
= MKCoordinateRegionMake(location, MKCoordinateSpanMake(laDelta * scaleValue, loDelta * scaleValue));
縮尺を最大値以上に指定すると、例外が発生して、アプリが落ちます。スライダーの最大値、最小値の設定に注意してください。
アドバイスありがとうございました。
無事スライダーで縮尺の変更を行えるようになりました。
毎回毎回的確なアドバイスを頂きとても感謝致しております。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- HTML・CSS 【HTML】【CSS】【Swiper】 元の画像は横1200×縦600なのですが、実際のサイト上に反 5 2022/07/16 13:57
- 英語 下記の英文の日本語訳をお願いします。 1 2023/03/02 10:01
- 英語 下記の英文を日本語に訳して、その意味を教えてください。 1 2023/03/09 14:13
- 英語 訳を知りたいです 3 2023/08/24 22:33
- Visual Basic(VBA) 2つのシートの任意のセルの番号が一致したら、一致した行をコピーする VBA 2 2023/06/19 20:48
- 教育・学術・研究 製図について質問です。 尺度2:1で書く場合、もともとR2のところはR4にしますか? また、寸法を書 1 2023/07/26 23:58
- 工学 電気回路の問題です。 (1)回路の入力インピーダンスZ0。 (2)回路の共振周波数を求めよ。また、そ 2 2023/05/28 23:09
- 英語 下記の英文を日本語に訳してください。 1 2023/03/10 13:04
- その他(自然科学) 信頼度がR1、R2の機器を並列に接続した場合、システム全体の信頼度はどれか。答え1-(R1)(1- 2 2023/01/15 21:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
クイズ作成:15個の問題から5個...
-
テキストボックスに入力された...
-
value内に変数を入れたい
-
javascriptで複数の計算を同時...
-
javascriptでhiddenに二次元配...
-
Pythonで会員サイトの自動ログ...
-
ラジオボタンとテキストを同時...
-
引数に数値、文字列の混在
-
switchを使って四則演算のプロ...
-
フォームで入力した値を別のフ...
-
選択したラジオボタンに対応し...
-
正規表現で複数マッチ条件で悩...
-
ボタン2回押しを無効にしたい
-
<form action="#">の意味とは?
-
<td>の中のonClick="location" で
-
JavaScriptにて動的に配列を作...
-
背景色を変えて未入力チェック...
-
【jsp/Java】チェックボックス...
-
javascriptで画像の移動
-
selectを変更不可にしたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
hiddenのvalueの値を変えたい
-
value内に変数を入れたい
-
複数のsubmitボタンで押された...
-
3桁区切りのカンマをつけたい...
-
VB.NET DateTimeの型について
-
javascriptでhiddenに二次元配...
-
テキストボックスに入力された...
-
eval()を使わずに数値を取得し...
-
引数に数値、文字列の混在
-
クイズ作成:15個の問題から5個...
-
sessionStorageを調べています。
-
setIntervalの間隔を途中で変更...
-
javascriptにてHTMLのhiddenエ...
-
name属性が同じフォームが複数...
-
セレクトボックスの初期選択状...
-
Pythonで会員サイトの自動ログ...
-
演算対象の数字と演算子を入力...
-
商品コードを入れたら自動で商...
-
フォームで入力した値を別のフ...
-
ラジオボタンの選択で解答・点...
おすすめ情報