【发布时间】:2015-11-24 14:45:15
【问题描述】:
我的照片应用中有一个 UIImageView,它会根据导入的图像改变大小。尺寸是动态创建的,然后以编程方式定位在屏幕中心,而不使用自动布局。
现在我已经使用了
self.imageViewCanvas.translatesAutoresizingMaskIntoConstraints = YES;
[self.imageViewCanvas setFrame:CGRectMake(0, 0, screenWidth, screenHeight)];
禁用约束。问题是,每当我加载应用程序时,我都会收到一条包含以下内容的长警告消息:
无法同时满足约束条件。 以下列表中的至少一个约束可能是您不想要的。 试试这个: (1)查看每个约束并尝试找出您不期望的; (2) 找到添加了一个或多个不需要的约束的代码并修复它。 (注意:如果您看到不理解的 NSAutoresizingMaskLayoutConstraints,请参阅 UIView 属性 translatesAutoresizingMaskIntoConstraints 的文档) ( "", “” ) 将尝试通过打破约束来恢复 在 UIViewAlertForUnsatisfiableConstraints 创建一个符号断点以在调试器中捕获它。 中列出的 UIView 上的 UIConstraintBasedLayoutDebugging 类别中的方法也可能会有所帮助。
有没有办法禁用这个特定的警告,或者我可以通过某种方式调整代码来避免它?
谢谢
【问题讨论】:
-
imageViewCanvas是在情节提要中创建的吗?如果是这样,它具有从情节提要加载的约束。你必须摆脱这些限制。 -
你对 imageview 有什么样的限制?
-
不,我不使用 Storyboard,而是使用 XIB。我只是在 UIView 上有一个 UIImageVIew,据我所知没有任何限制。
-
但是你为什么不想使用自动布局呢?我的意思是您可以添加宽度和高度约束并从代码中修改它们。定义布局以使您的 imageview 居中使事情变得容易,并且还支持开箱即用的旋转。
-
并不是我不想使用它们,这是我第一次真正尝试使用 AutoLayout,所以我想我会尝试通过将上述过程分开来简单地构建我的构建。我不确定如何以编程方式调整约束。加载图像时,我根据屏幕宽度动态设置高度,保持纵横比。在此过程之后不确定如何设置约束,以便 UIImageView 再次居中。
标签: ios objective-c autolayout