Jus*_*ing 2 ios uistoryboard nslayoutconstraint uistackview
我有一个UITableViewCell,里面有一个嵌入式UIStackView.一切正常,手机和iPad都很好看.但是,我在StoryBoard中遇到了很多奇怪的错误,我不知道是否可以忽略它们.通常,我讨厌忽视警告.但在这种情况下可以吗?我的表格单元格设置如下:
UITableViewCell
- Content View
-- View (named outerView)
--- View (named dateView for top banner color)
--- UIStackView (vertical, named mainStackView, pinned to neighbors)
---- UIButton (A)
---- UIView (B)
---- UIStackView (C, horizontal)
---- UIStackView (D, horizontal)
---- UILabel (E)
---- UIButton (F)
Run Code Online (Sandbox Code Playgroud)
mainStackView(字母AF)下的所有内容都在StoryBoard中显示错误,他们"需要约束:Y位置或高度".但是,根据Apple 文档, 它表示如果UIStackView是垂直方向,它们将处理所有约束和垂直对齐.就像我说的,它工作正常,arrangeSubviews可以折叠/隐藏,没有其他警告.我只是不喜欢发布带有警告的代码.我该怎么做才能解决这个问题,或者这是一个已知的问题?
更新:以下是评论所要求的MCVE.单击此处并解压缩该文件夹以获取仅在Interface Builder中可用的裸骨骼项目.
我解决这个问题的方法是:
1.将主堆栈视图上的底部约束移到SuperView的底部,这样只有3个边固定.
或
2.降低表格单元的高度.虽然它是一个基于标签/按钮高度的动态高度单元格,但我想它仍然需要在界面构建器中的"正确"高度?
我不得不使用选项2,因为如果我做了选项1,我的表格单元格就会消失,因为它不知道如何使用单元格的高度.同样值得重申的是,以前的代码仍然工作正常,它只是有编译警告.我不知道为什么没有其他人能看到它们尽管处于同一级别的xcode.现在试着让我的3天回来并在我的OCD上处理代码中的警告.
小智 5
我在垂直堆栈视图上也遇到了类似的问题。我解决这个问题的方法是对任何子视图(在我的例子中是水平堆栈视图)给予高度约束并在构建时将其删除。我也在你的 MCVE 上尝试过这个,它有效。
注意:这当然是一个黑客行为,但它解决了问题。
| 归档时间: |
|
| 查看次数: |
5159 次 |
| 最近记录: |