Interface Builder 在每次操作后水平和向后折叠垂直堆栈视图
Posted
技术标签:
【中文标题】Interface Builder 在每次操作后水平和向后折叠垂直堆栈视图【英文标题】:Interface Builder is collapsing vertical stack view horizontally and back after each action 【发布时间】:2018-01-04 11:15:11 【问题描述】:我正在 Interface Builder 中设计一个视图控制器并有一个堆栈视图。在任何操作之后(例如移动任何对象一点点,或者将约束更改 1px),整个堆栈视图水平折叠,弄乱了所有布局。然后,当我采取任何其他操作(例如,更改另一个约束,甚至是相同的约束,都没有关系)时,它会恢复到原来的正确布局。
这是正确布局的截图:
这是相同的视图,只是在字面上改变了任何东西:
当我再次更改任何内容时,它会被修复(恢复到正确的布局),而当我更改其他内容时,它会再次变得混乱,永远这样。检查器中没有任何自动布局问题。另外,在这个问题开始后,我将所有视图的拥抱和压缩阻力约束设置为 1000,但无济于事。这可能是什么原因造成的?我在 Xcode 9.2 上。
【问题讨论】:
我也有同样的问题,但一直没能找到解决办法。在 Interface builder 中使用 stackview 是不可能的,因为它会不断调整大小并消失。 @andlin 我已经完全放弃了堆栈视图,因为它在我的滚动视图中也有可怕的滚动性能。虽然堆栈视图的想法很诱人,但当前的实现存在太多错误且速度太慢,无法在许多项目中使用。 【参考方案1】:在发布此消息后,我注意到了一些事情:
如果我给出一个首选的显式宽度(大于零的任何值,不管是 1 还是 10000),问题就会消失:
虽然我仍然不知道为什么每次操作后它都会折叠整个堆栈视图。
但是,它解决了这个问题。
【讨论】:
谢谢!这似乎可行,尽管必须给出首选宽度很奇怪。而且堆栈视图的跳转很烦人;( @prad 是的,这绝对是 Apple 方面的一个错误,但至少可以节省一天的时间:)以上是关于Interface Builder 在每次操作后水平和向后折叠垂直堆栈视图的主要内容,如果未能解决你的问题,请参考以下文章
从 Interface Builder 连接时,GestureRecognizer 操作未触发
在 Interface Builder 中定义“通用”segue
通过 Interface Builder 更改 UIView 属性