【发布时间】:2016-05-27 03:06:18
【问题描述】:
我有一个 TableViewController,其中包含 3 个标签和一个 imageView 的动态单元格。我在故事板中创建了它。看起来是这样的……
- Label1
oImg - Label2
- Label3
而且,Label2 垂直居中于 imageView(称为约束-A);并且其他标签也与 Label2 对齐。
我要做的是,在 TableViewController 的cellForRowAtIndexPath 中,检查 Label3 是否为空,将 Label2 向下移动,Label1 保持之前设置的约束(因此也向下移动)。
作为第一个选项,我尝试将约束-A 连接到 TableViewController,但由于它是 TableViewCell,我无法将约束出口连接到 TableViewController。
然后,我尝试手动将它们向下移动,但奇怪的是它只影响一行(第一行没有 Label3),而 cellForRowAtIndexPath 的其余部分工作正常..
cell.Label2.frame.origin.y += 5
cell.Label1.frame.origin.y += 5
实现这一目标的适当方法是什么? (所以我可以控制约束-A 或手动移动 Label2,Label1 跟随)
【问题讨论】:
-
这取决于你的约束。您可以将 Constraint Outlet 设置为 YourCusstomCell Class 。在 cellForRow 中,您可以检查 Label3 的数据源是否为空,您可以更改此方法的约束。我想您需要制作所有标签和图像出口来进行约束。
-
这取决于您的要求,您的行高是否固定,您的标签是1行还是多行。
-
设置 Label3 第 0 行的编号并移除垂直居中到 imageView ,当文本为空时,您的 label2 会自动向下
标签: ios swift uitableview autolayout nslayoutconstraint