1

ユーザーがマップ上でドラッグできる MKAnnotationView があります。

ユーザーがピンをドラッグするのは非常に困難です。フレーム サイズを大きくして、巨大なカスタム イメージを使用してみました。しかし、実際にドラッグのヒット領域をデフォルトよりも大きく変更するものは何もないようです。

その結果、何かが起こる前に、タップ/ドラッグを約 10 回試行する必要があります。

MKAnnotationView *annView = [[[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"bluedot"] autorelease];

UIImage *image = [UIImage imageNamed:@"blue_dot.png"];

annView.image = image;
annView.draggable = YES;
annView.selected = YES;
return annView;

ここで何が欠けていますか?

編集:

問題は、ドラッグする前に MKAnnotationView に触れる必要があることです。近くにたくさんのピンがあり、MKAnnotationView が非常に小さいため、問題が発生していました。

4

2 に答える 2

1

ドラッグする前に MKAnnotationView に触れる必要があることに気づきませんでした。

これを回避するために、その MKAnnotationView を定期的に選択するタイマーを作成しました。

NSTimer *selectAnnotationTimer = [[NSTimer scheduledTimerWithTimeInterval:0.2 target:self selector:@selector(selectCenterAnnotation) userInfo:nil repeats:YES] retain];  

そしてそれが呼び出すメソッド:

- (void)selectCenterAnnotation {
    [mapView selectAnnotation:centerAnnotation animated:NO];    
}    
于 2012-06-06T08:06:38.600 に答える
0

タイマーを使用する代わりに、マウス ダウンで注釈を選択できます。このようにして、注釈の選択を混乱させず、常に実行されている注釈ごとにタイマーを設定しません。

Mac アプリケーションの開発時に同じ問題が発生しました。マウス ダウンで注釈を選択すると、ドラッグがうまく機能します。

于 2014-09-02T08:47:00.400 に答える