加载更大的图像后,UIImageView会调整大小

时间:2013-01-26 21:23:29

标签: ios objective-c uiimageview uiimage

我在IB中有一个UIImageView。我设置了框架和图像。关键是我的图像是300x193,但后来我想要更新更大的图像并在此视图上使用一些contentMode

所以一开始我有:

enter image description here enter image description here

所以我很清楚框架应该保持310 116 300 193并且我想保持这种状态(这就是我使用Scale To Fill ContentMode的原因。< / p>

所以我在这里有图像选择器,当我使用这段代码时:

-(void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    [self.imView setImage:[info objectForKey:UIImagePickerControllerOriginalImage]];

    [self dismissModalViewControllerAnimated:YES];

}

我的UIImageView框架更改为:

(UIImageView *) $0 = 0x1c5c1ae0 <UIImageView: 0x1c5c1ae0; frame = (-160 20; 640 1136); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x1c5c1b40>> - (null)

为什么?

3 个答案:

答案 0 :(得分:3)

只需为图像视图添加宽度和高度约束即可。我不确定为什么你没有自动获得这些,我在拖动图像视图时得到它们。

答案 1 :(得分:0)

我认为这是由自动布局引起的。布局允许视图增长以适应不同大小的图像,所以它确实如此。你有一个蓝色的“用户”约束,其中有一个&gt; =符号吗?

在IB中的“show file inspector”下,您可以取消选中“使用Autolayout”,您将看到行为更改以匹配您想要的内容。要使Autolayout生效并获得所需的行为,您可能需要检查每个约束以及它如何影响该视图的大小。

答案 2 :(得分:0)

尝试将您的观看模式从Scale to Fill更改为Aspect to Fit