0

ImageView を MapView のサブビューとして追加する必要があります。ImageView は常に mapView の背後にあるため、コードでは実行できません。ファイルの所有者では、UIImageView は常に mapView に対して外部にあるため、IB では実行できません (何度か試しました)。Xcode 4.5 を使用しています。UIImageView を MapView のサブビューとして追加できますか?

これは MapViewController.h のコードです

 @property (nonatomic, strong) UIImageView *iphoneLegenda;
 @property (nonatomic, strong)IBOutlet MKMapView *mapView;

MapViewController.m 内

@synthesize iphoneLegenda;
@synthesize mapView;

- (void)viewDidLoad
{
  //.....
    self.iphoneLegenda.frame = CGRectMake(self.mapView.bounds.origin.x, 
                            self.mapView.bounds.origin.y, 200, 100);

  //......

   [self.mapView addSubview:self.iphoneLegenda];
   [self.iphoneLegenda bringSubviewToFront:self.mapView];
  //.....
}
4

3 に答える 3

3

AntonPalichとMashDupの答えが最善の方法だと思います。mapView内にサブビューを追加するには、QuartzCore.frameworkを追加する必要があります。これは、次のコードです。

- (void)viewDidLoad
{
 CALayer *layer = [CALayer layer];
 layer.backgroundColor = [[UIColor whiteColor] CGColor];
 layer.bounds = CGRectMake(mapView.frame.origin.x, mapView.frame.origin.y, 200, 100);
 [[mapView layer] addSublayer:layer];
}
于 2012-11-07T11:55:06.330 に答える
0

マップビューの上にイメージビューが必要な場合は、xibを使用しているように見えます。マップビューはすでにビュー上にあります。マップビューの場合と同じように、xibにイメージビューを追加してリンクします。そのアルファがxibで0(後でアニメーションに適している)になるようにします。次に、コードで、ボタンまたはある種のボタンをオンにする必要があると想定します。だから、ラインを変更してiboutletを持っています。

@property (nonatomic, strong) IBOutlet UIImageView *iphoneLegenda;

次に、それをフェードインするアクション:

[UIView animateWithDuration:0.5 animations:^{
        [iphoneLengenda setAlpha:1.];
    }];

フレームの設定などをいじる必要はありません。

于 2012-11-07T11:05:04.187 に答える
0

このスキームはどうですか:

UIView
 - MKMapView
 - UIImageView

MKMapView は UIView と同じサイズになり、UIImageView は常に一番上になります。

于 2012-11-07T11:16:55.190 に答える