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];

该视图也已在 Interface Builder 中设置,并设置为自动调整其子视图的大小并设置为 cliptobounds(有时 - 我已经尝试了两种方式)。我已经在 viewdidload 中添加了我的视图(当占位符没有它的框架时,由于我不知道的原因),以及后来,当它有时(并且它不起作用)。

我错过了什么?(我是否以正确的方式解决了这个问题?)

4

1 回答 1

0

我终于通过将 AutoResizeMasks 设置为

UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight |
UIViewAutoresizingFlexibleRightMargin | UIViewAutoResizingFlexibleBottomMargin

并将 ContentModes 设置为

UIViewContentModeScaleAspectFit
于 2013-02-10T03:44:50.440 回答