iOS UIScrollView contentOffset 和 AutoLayout

Posted

技术标签:

【中文标题】iOS UIScrollView contentOffset 和 AutoLayout【英文标题】:iOS UIScrollView contentOffset and AutoLayout 【发布时间】:2015-05-25 20:55:26 【问题描述】:

我使用大量addConstraint: 调用以编程方式布置了一个相当复杂的视图层次结构。一切看起来和工作正常,但是,某些操作会在调试器中导致警告消息,如下所示:

Unable to simultaneously satisfy constraints.
... details of the constrains ...
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful.

当我按照调试器的建议设置断点时,我将警告追溯到一个调用,该调用将contentOffset 设置为我的UIScrollView。调试器说:

Will attempt to recover by breaking constraint ...

但从视觉上看,约束似乎没有被打破,一切看起来仍然正确。

为什么滚动视图的contentOffset 的更改会更改与约束相关的任何内容?为什么即使我在屏幕上看不到任何错误,调试器也会抱怨?

编辑:这与UIScrollView 上的约束与其contentSize 而不是bounds 相关的所有其他视图有关。我有一个视图,它在它的超级视图(它是一个滚动视图)和滚动视图之外的另一个视图中有约束。当contentOffset 发生变化时,就不可能同时满足这两个要求了。

【问题讨论】:

【参考方案1】:

约束部分的详细信息对您很重要。从您追踪问题的区域来看,这可能是滚动视图的宽度/高度约束问题;但是,您可以通过查看约束详细信息括号中的数字来了解哪些约束是问题所在。

请张贴整个区块。

【讨论】:

以上是关于iOS UIScrollView contentOffset 和 AutoLayout的主要内容,如果未能解决你的问题,请参考以下文章

Mac电脑 阿里云ECS(ContentOS) Apache+vsftpd+nodejs+mongodb建站过程总结

不同版本的 UIScrollView - iOS

UIScrollview - 模糊效果 iOS

ios: uiscrollview 和 uiview 自动布局

iOS开发UI篇—UIScrollView控件实现图片缩放功能

ios UIScrollView