我的照片应用程序中有一个UIImageView,它根据导入的图像改变大小。大小是动态创建的,然后以编程方式定位在屏幕中央,而不使用自动布局。
现在我已经使用了
self.imageViewCanvas.translatesAutoresizingMaskIntoConstraints = YES;
[self.imageViewCanvas setFrame:CGRectMake(0, 0, screenWidth, screenHeight)];
禁用约束。问题是每当我加载应用程序时,我都会收到包含以下内容的长警告消息:
无法同时满足约束。 可能至少以下列表中的一个约束是您不想要的约束。 试试这个: (1)看看每个约束,并试图找出你不期望的; (2)找到添加了不需要的约束或约束的代码并修复它。 (注意:如果您正在查看您不了解的NSAutoresizingMaskLayoutConstraints,请参阅UIView属性的文档translatesAutoresizingMaskIntoConstraints) ( "&#34 ;, "" ) 将尝试通过打破约束来恢复 在UIViewAlertForUnsatisfiableConstraints上创建一个符号断点,以便在调试器中捕获它。 列出的UIView上的UIConstraintBasedLayoutDebugging类别中的方法也可能有用。
有没有办法禁用此特定警告,还是可以通过某种方式调整代码以避免它?
由于
答案 0 :(得分:1)
对于启用了自动布局的故事板或NIB,Xcode将提供缺少的约束。这发生在构建时。如果您查看“大小”检查器以查找尚未添加任何约束的视图,您将看到有关Xcode为您添加约束的消息。所以,基本上,无论你做什么,图像视图都会受到限制。
如果您将translatesAutoresizingMaskIntoConstraints
设置为true,则会与自动提供的约束冲突。您可以删除/停用这些约束,但很难获得对它们的引用。
您的选择:
translatesAutoresizingMaskIntoConstraints
为真。translatesAutoresizingMaskIntoConstraints
,它也可以正常工作。)translatesAutoresizingMaskIntoConstraints
之前以编程方式停用它们。