涉及 UICollectionViewCell 和子视图的约束问题违反逻辑

Posted

技术标签:

【中文标题】涉及 UICollectionViewCell 和子视图的约束问题违反逻辑【英文标题】:Constrain problem involving UICollectionViewCell and subviews defies logic 【发布时间】:2019-01-11 17:46:32 【问题描述】:

我有一个带有按钮和标签的collectionviewcell,如下所示:

按钮是一个 100x100 的正方形,标签是一个 100x40 的矩形。单元格调整为 120x140。

所以我添加的约束是:

按钮:

纵横比1:1 顶部到超级视图空间 0 底部到标签空间 0 相对于单元格水平居中 宽度 = 100

标签

与按钮宽度相同 相对于按钮水平居中 身高40 按钮 0 的顶部空间 到单元格 0 的底部空间

我到处都看到约束错误。

我尝试将这两个视图嵌入到堆栈中。它把一切都搞砸了。

然后我尝试将堆栈嵌入到视图中,同样的问题。

这不符合任何逻辑。

你们能告诉我以天堂的名义我是如何限制这些元素的吗?我想要的只是水平居中的两个元素,顶部的按钮,底部的标签,都具有相同的 100 宽度,方形按钮和高度为 40 的标签。两者都在 120x140 的单元格中。

谢谢

【问题讨论】:

尝试添加容器视图:***.com/a/45127647/603977 【参考方案1】:

这就是您应该如何使用单元格中的堆栈视图设置约束来完成您需要的:(单元格宽度 = 120,高度 = 140)

【讨论】:

不适合我。我的堆栈移动到 x,y = -22, -70。堆栈嵌入在一个视图上,该视图被限制为 0,0,0,0 到单元格,但单元格具有这些坐标 (0,0,56,0)。我必须在标签上添加 100 的宽度。堆栈中的东西似乎是正确的。 堆栈调整为垂直、前导、填充、0...对吗? 是的,堆栈应该覆盖它所包含的视图。当你说你的堆栈视图移动了。你是否点击了故事板屏幕右下角的更新帧按钮?有时在故事板中编辑单元格后,它不会正确更新,直到您再次关闭并打开故事板文件

以上是关于涉及 UICollectionViewCell 和子视图的约束问题违反逻辑的主要内容,如果未能解决你的问题,请参考以下文章

向 UICollectionViewCell 添加圆角和阴影

UICollectionViewCell 和 UIScrollView

在 UICollectionViewCell 中更新 UITableView

UICollectionviewcell 中未显示数据?

带有 UICollectionviewcell 和 UITableviewcell 的 UITableview

UICollectionViewCell - 编辑模式