このView Controllerをストーリーボードに設定しましたが、MapViewをプログラムで追加する必要があります。
マップがビューの幅を埋め、両方の方向で高さが 100 になるようにします。また、マップの下にある imageView には 10 の間隔が必要です。
これは私が使用しているコードです。
_map = [MyClass sharedMap]; // Get singleton
[_map removeFromSuperview]; // Remove from the other VC view
[_map removeConstraints:[_map constraints]]; // Remove constraints if any
[[self view] addSubview:_map];
[[self view] addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"|[_map]|" options:0 metrics:nil views:@{@"_map" : _map}]];
[[self view] addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[_map(100)]-10-[_sellerImage]" options:0 metrics:nil views:@{@"_map" : _map, @"_imageView" : _imageView}]];
しかし、結果は次のとおりです。
- 幅は一定で、画面幅を埋めません
- 縦向きにすると高さが高くなる
- imageView への 10 ピクセルの間隔は問題ありません
マップの初期フレームを設定する必要がありますか?
この mapview は、メモリを節約するために多くのビューで使用されるシングルトンです。これはその初期化コードです:
+ (MKMapView *)sharedMap {
static MKMapView *mapView;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
mapView = [[MKMapView alloc] init];
if (IS_IOS_7) {
[mapView setShowsUserLocation:YES];
[mapView setPitchEnabled:NO];
}
[mapView setAutoresizingMask:UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth];
});
return mapView;
}