1

カスタムビュー(UIViewのサブクラス)を作成しています。その目的は、静的な背景画像、静的な境界線/フレームオーバーレイ、およびビュー内で回転、拡大、ドラッグできるいくつかの小さな画像をまとめることです。 (ビュー全体が画像としてエクスポートされる前)。

このカスタムビューを別のビュー内から表示することに固執しています。画像は非常に高解像度のiPhoneカメラからのものであり、これまで私が管理できたのは、画像の大部分を切り取るか、画面の端を越えて表示することだけです。画像を編集せずに(完全な形で送信できるように)、メニュー項目などと一緒に表示できるようにする必要があります。

また、画像を全画面表示に追加していますが、サイズは変更されません。

私は次のようにビューを初期化しています

- (id)initWithImage:(UIImage *)image
{
    self = [super init];
    if (self) {
        [self setClipsToBounds:YES];
        [self setAutoresizesSubviews:YES];
        [self setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight];

        _image = image;
        _imageView = [[UIImageView alloc] initWithImage:_image];
        [_imageView setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight];
        [self addSubview:_imageView];
    }
    return self;
}

そして、私はそれを別のビューに追加します

self.card = [[SGImageCard alloc] initWithImage:[SGCardDataController cardImage]];
[self.cardPlaceHolder setAutoresizesSubviews:YES];
[self.cardPlaceHolder setContentMode:UIViewContentModeScaleAspectFit];
[self.cardPlaceHolder addSubview:self.card];

そのビューはInterfaceBuilderでも設定されており、サブビューの自動サイズ変更とcliptoboundsに設定されています(場合によっては、両方の方法を試しました)。ビューをviewdidloadに追加し(プレースホルダーにフレームがない場合、理由はわかりません)、後で追加しました(どちらの方法でも機能しません)。

私は何が欠けていますか?(私もこれについて正しい方法で行ったことがありますか?)

4

1 に答える 1

0

AutoResizeMasksをに設定することで最終的にこれを解決しました

UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight |
UIViewAutoresizingFlexibleRightMargin | UIViewAutoResizingFlexibleBottomMargin

また、ContentModesをに設定します

UIViewContentModeScaleAspectFit
于 2013-02-10T03:44:50.440 に答える