0

私の DetailView のレイアウトは次のとおりです。

ここに画像の説明を入力

黒いナビゲーション バーのすぐ下に UIImageView を配置したことがわかります。

デバイスが縦向きまたは横向きの場合、画像の幅が画面いっぱいになるようにします。

IB では、UIImageView は「Aspect Fill」で、カスタムの高さの制約は >=240 です。

次の 2 つの問題が発生しています。

  • 最初に、UIImageView の幅が画面いっぱいに表示されますが、垂直方向の寸法は自動的にサイズ変更されません

  • 次に、高さが 240 を超える画像は、ナビゲーション バーの下で垂直方向にのみ成長します

これを修正する方法はありますか?必要に応じてコードを投稿してください。

4

1 に答える 1

0

気にしない場合は、自動サイズ変更を使用する代わりに、次のように UIImageView のフレームを設定することをお勧めします

In - (void)viewWillAppear:(BOOL)animated

- (void)viewWillAppear:(BOOL)animated
{
    [self checkOrientation];
}

そしてcheckOrientationで

- (void)checkOrientation
{
    UIDeviceOrientation deviceOrientation = [UIDevice currentDevice].orientation;

    if (UIDeviceOrientationIsLandscape(deviceOrientation)) {
        // set imageview frame to fit what you need
    }
    else if (deviceOrientation == UIDeviceOrientationPortrait) {
        // set imageview frame to fit what you need
    }
}

少しでもお役に立てれば幸いです、ありがとう。

于 2012-12-13T02:25:29.490 に答える