0

iPhone に保存された画像があり、プロトコルMKAnnotationDelegateを実装するために呼び出したクラスがあるとします。MKAnnotation

そのクラスを使用してマップ ビューに注釈を表示できますが、吹き出しアクセサリを設定して画像を挿入する方法がわかりません。

だから私はMKMapiewDelegateプロトコルを実装し、クラスにUIImageプロパティを与え、定義しました

-(MKAnnotationView *) mapView:(MKMapView *)mapView 
            viewForAnnotation:(id<MKAnnotation>)annotation;

そして、私はこれらの2行を入れました:

annotationView.canShowCallout = YES;

[(UIImageView *)annotationView.rightCalloutAccessoryView setImage: _image];

しかし、そこに画像を取得するために何をすべきかまだわかりません。

4

3 に答える 3

1
UIImageView *imageView = // init the image view ...
[imageView setImage:_image];
[annotationView setRightCalloutAccessoryView:imageView];

これらは通常、UIButton を表示するために使用されます。

于 2012-07-31T03:24:08.333 に答える
0

これは、次のメソッドの実装で役立つ場合があります。

-(MKAnnotationView *) mapView:(MKMapView *)mapView viewForAnnotation:(id)annotation;
{
// Initialize the MKPinAnnotationView...
UIImage *image = [UIImage imageNamed:@"imagename"];
UIImageView *imgView =[[UIImageView alloc] initWitthImage:image];
[annotationView setRighCalloutAccessoryView:imgView];
//or
[annotationView setLeftCalloutAccessoryView:imgView];

}

MKPinAnnotationView Class Referenceの Apple Docs からの何か:

rightCalloutAccessoryView 標準吹き出しの右側に表示するビュー。

@property (retain, nonatomic) UIView *rightCalloutAccessoryView
討論

このプロパティは、デフォルトで nil に設定されています。通常、右側の吹き出しビューは、注釈に関するより詳細な情報にリンクするために使用されます。ビューの高さは 32 ピクセル以下にする必要があります。このプロパティに指定する一般的なビューは、型が UIButtonTypeDetailDisclosure に設定されている UIButton オブジェクトです。

指定したビューが UIControl クラスの子孫でもある場合は、マップ ビューのデリゲートを使用して、コントロールがタップされたときに通知を受け取ることができます。UIControl から派生していない場合、ビューはその境界内でタッチ イベントを処理する責任があります。

leftCalloutAccessoryViewのプロパティも参照MKPinAnnotationView

于 2012-07-31T04:52:59.567 に答える
0

画像のみを RightCalloutAccessoryView に設定し、 LeftCalloutAccessoryView を mapview 注釈に設定します。ビューを注釈に設定する場合は、独自のカスタム注釈を作成します。

テーブルビューを注釈ビューリンクに追加するこの 1 つの例を試してください。

于 2012-07-31T05:47:41.993 に答える