高度的自动布局在 iOS 8 中工作但在 iOS 7 中不工作
Posted
技术标签:
【中文标题】高度的自动布局在 iOS 8 中工作但在 iOS 7 中不工作【英文标题】:Autolayout for Height working in iOS8 but not working in iOS7 【发布时间】:2015-08-08 04:49:28 【问题描述】:我的 UIImageView 在视图中,它将从服务器下载图像,下载完成后,我的 UIImageView 高度将根据图像的高度进行调整,但问题是它在 ios8 中运行良好,但在 iOS7 中运行不正常。在 iOS7 中,高度缩放到比我尝试设置的要高得多。我正在通过 IB 设置自动布局
这是我的代码的摘录(默认为 250)
if(image.size.height<250) headerView.itemImageView.contentMode = UIViewContentModeCenter;
else
adjustedHeight = image.size.height*320.0f/image.size.width;
imageHeight = adjustedHeight;
[headerView.heightContraintLayout setConstant:adjustedHeight];
[headerView.itemImageView layoutIfNeeded];
//after this line of code, I check the size of itemImageView is extended more than the adjestedHeight that I set in the previous line ( this only happened in iOS7 not iOS8
【问题讨论】:
【参考方案1】:您将图像视图的内容模式设置为“中心”。
尝试根据您的需要将其设置为“Aspect Fill”或“Scale to Fill”。
【讨论】:
不,事实并非如此,因为我总是在 IB 中将 contentMode 设置为 AspectFit(IF 案例在正常情况下永远不会执行)。无论如何,我已经通过在 UIImageView 和 superView 的底部之间放置更多的 NSLayoutConstrainst 解决了这个问题。这种方式锁定了大小,不会产生垂直空白以上是关于高度的自动布局在 iOS 8 中工作但在 iOS 7 中不工作的主要内容,如果未能解决你的问题,请参考以下文章
CoreLocation 应用程序在模拟器中工作但不在设备上