2

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

所以一开始我有:

在此处输入图像描述在此处输入图像描述

所以我很清楚框架应该保持不变310 116 300 193,我想保持这种状态(这就是我使用Scale To Fill ContentMode.

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

-(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)

为什么?

4

3 回答 3

3

只需将宽度和高度约束添加到您的图像视图。我不知道你为什么没有自动得到那些,当我在图像视图中拖动时我得到了它们。

于 2013-01-27T00:58:57.407 回答
0

我相信这是由自动布局引起的。布局允许视图增长以适应不同大小的图像,它确实如此。您是否有一个带有 >= 登录的蓝色“用户”约束?

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

于 2013-01-26T22:01:34.693 回答
0

尝试将您的视图模式从 更改Scale to FillAspect to Fit

于 2013-01-26T23:07:35.497 回答