5

IB で作成した MKMapView のフレームを 4 インチ デバイス用に調整しようとしていますが、うまくいきません。これがviewDidLoadの私のコードです:

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.

    // Resizing UILabel for 4-inch screen
    CGRect screenBounds = [[UIScreen mainScreen] bounds];
    if (screenBounds.size.height == 568) // 4 inch
    {
        mapView.frame = CGRectMake(0, 44, 320, 504);
    }
    else // 3.5 inch
    {
        mapView.frame = CGRectMake(0, 44, 320, 416);
    }
    // END - Resizing UILabel for 4-inch screen
}

この設定の何が問題なのか誰か教えてもらえますか? ありがとう。

4

2 に答える 2

6

mapView をビュー コントローラー ビューと同じサイズに設定する (つまり、画面いっぱいにする) だけの場合は、マップ ビューのフレームをビューの境界に設定し、同じ自動サイズ変更マスクを指定します (これを行うことができます)。 viewDidLoad で、画面サイズをテストする必要はありません)

mapView.frame = self.view.bounds;
mapView.autoresizingMask = self.view.autoresizingMask;
于 2012-12-29T14:59:33.473 に答える
1

MapView を含む静的テーブル View One セルで同じ問題が発生しました。

iPhone の画面サイズが異なる: マップ ビュー セルのセルの高さが異なります。

私は次のような別のアプローチを見ました:

mapView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);  

残念ながら、ユーザーがモバイルの向きを変えた場合にのみ機能します=>再描画?

私の解決策は、IBでAUTO LAYOUTを正しく使用し、制約を使用することでした。これで問題が解決しました

Left Horizontal Space Constraint = '0'
Right Horizontal Space Constraint = '0'
Top Vertical Space Constraint = '0'
Bottom Vertical Space Constraint = '0'

--> これは、stackoverflow.com での最初の投稿です。:-)

于 2014-01-26T17:28:21.863 に答える