Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UIImageView没有';t将自身调整为它所持有的UIImage_Ios_Objective C_Iphone_Uiimageview_Uiimage - Fatal编程技术网

Ios UIImageView没有';t将自身调整为它所持有的UIImage

Ios UIImageView没有';t将自身调整为它所持有的UIImage,ios,objective-c,iphone,uiimageview,uiimage,Ios,Objective C,Iphone,Uiimageview,Uiimage,我有一个UIImageView,可以自动布局到容器边距。我在ViewController中为其设置了一个UIImage。如果我使用“代码> > UIVIEW CONTRONMODCALASECAPETFIT ,那么图像就在我想要的屏幕中央,所有的东西看起来都很棒,但是当我给 UIIVIEVIEW 一个背景颜色时,我可以看到它仍然一直扩散到容器边距,并且没有得到图像的比例和尺寸。这是我的代码: UIImage *passedImage = [UIImage imageNamed:self.phot

我有一个
UIImageView
,可以自动布局到容器边距。我在ViewController中为其设置了一个
UIImage
。如果我使用“代码> > UIVIEW CONTRONMODCALASECAPETFIT ,那么图像就在我想要的屏幕中央,所有的东西看起来都很棒,但是当我给<代码> UIIVIEVIEW 一个背景颜色时,我可以看到它仍然一直扩散到容器边距,并且没有得到图像的比例和尺寸。这是我的代码:

UIImage *passedImage = [UIImage imageNamed:self.photoTitle];
CGRect imageBounds = CGRectMake(0, 0, passedImage.size.width, passedImage.size.height);
[self.imageView setImage:passedImage];
self.imageView.bounds = imageBounds;
self.imageView.contentMode = UIViewContentModeScaleAspectFit;

我已经尝试了所有方法来修复它,并到处寻找答案,请帮帮我,你是我唯一的希望。

与其将图像视图的边缘固定到容器的边缘,不如将其中心X和中心Y固定到容器的中心X和中心Y


这会产生相同的视觉效果-图像居中-但使图像视图可以根据其内容自由调整自身大小。

UIImageView不会根据其渲染的图像大小调整自身大小。如果你需要相应地调整它的大小,你需要自己做。Matt的回答是合理的,但您仍需要在某个时候更新图像视图大小。我建议您在视图的
layoutSubviews
updateConstraints
方法中或在视图控制器的
viewdlayoutsubviews

“UIImageView不会根据渲染的图像大小调整自身大小”是的,在自动布局下,这正是它所做的,如果其他限制条件不能阻止它,我希望我可以上传一个屏幕截图来说明清楚,但我不能,所以我将尝试解释:当固定到边距时,我将图像放在屏幕的中心,宽度一直到边距,因此它适合屏幕。当我将视图的中心固定到X和Y上时,视图的顶部位于容器边距处,底部一直延伸到屏幕底部(可能超出它?),左侧位于边距处,右侧延伸到屏幕右侧,并且图像的边界与视图的边界相同(超出屏幕)我觉得这是你形象的问题。它太大了,它的四周都有一堆空白。是的,它很大(1122x1084),但没有空白。我能怎么办?你想怎么办?我不再知道你想做什么。你说你想让图像视图根据图像调整自身大小,我告诉过你怎么做。而且它工作得很好!但是结果是图像太大了,所以当这种情况发生时,图像和图像视图都太大了。你想做什么?你知道吗?很抱歉,如果一开始我被误解了,我想让图像和图像视图适合屏幕。这是一个有洞的PNG,在它后面我有一个摄像头,用户可以在洞里拍照。然后,我将其合并为一张用户可以共享的照片。camera UIView框架从图像视图框架获取其大小,这就是为什么我需要图像视图来获取图像的大小,并且两者都适合屏幕。