ios - 使用自动布局,如何根据图像使 UIImageView 的大小动态变化?

我希望我的 UIImageView 根据它所显示的实际图像的大小来增长或缩小。但我希望它保持垂直居中,距离 super View 的前沿 10 点。

但是,如果我设置了这两个约束,它会提示我没有设置足够的约束来满足自动布局。对我来说,它似乎完美地描述了我想要的东西。我错过了什么?

最佳答案

ImageView 的固有大小已经取决于图像的大小。您的假设(和约束是正确的)。

但是,如果您在界面构建器中设置了 ImageView 并且没有为它提供图像,那么布局系统(界面构建器)将不知道您的 ImageView 在编译时应该有多大.您的布局不明确,因为您的 ImageView 可能有多种尺寸。这就是引发错误的原因。

一旦您设置了 ImageView 的图像属性, ImageView 的固有大小就由图像的大小定义。如果您在运行时设置 View ,那么您可以完全按照 Anna 提到的操作,并在 ImageView 的属性检查器中为界面构建器提供“占位符”内在大小。这告诉界面生成器,“暂时使用这个尺寸,稍后我会给你一个真实的尺寸”。占位符约束在运行时被忽略。

您的另一个选择是直接将图像分配给界面构建器中的 ImageView (但我假设您的图像是动态的,因此这对您不起作用)。

https://stackoverflow.com/questions/26833627/

相关文章:

iphone - 将 NSDictionary 保存到 NSUserDefaults

objective-c - [NSNull null] 和 nil 有什么区别?

objective-c - 对 block 进行类型定义是如何工作的

objective-c - 尝试标记应用程序图标,但未获得用户标记应用程序的权限 : iOS 8 X

objective-c - iOS:如何将 UIViewAnimationCurve 转换为 UIV

objective-c - 在 Objective C 中使用 extern

objective-c - 有没有一种简单的方法可以将 ISO8601 时间戳转换为格式化的 NSD

objective-c - 如何编写 OS X Finder 插件

ios - 使用 Storyboard 的条件转场

ios - 如何在 iPhone 上显示来自 API 的 HTML 文本?