从 TableViewController 控制 Cell Item 的约束
Controlling Constraint of Cell Item from TableViewController
我有一个带有动态单元格的 TableViewController,其中包含 3 个标签和一个 imageView。我在情节提要中创建了它。看起来像这样...
- Label1
oImg - Label2
- Label3
并且,Label2 垂直居中于 imageView(称之为 constraint-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 跟随)
为 label1 和 label2 的 y-cord 约束创建 IBOutlet 属性,然后更改 "your property name".constraint = "some value" 而不是更改帧 y-cord。
//set above image 2
cell.constLbl.constant = -(cell.lbl3.frame.size.height / 2 - 10); // this obj below img 1
cell.constLbl3Top.constant = cell.lbl3.frame.size.height / 2; // this obj below img 2
我有一个带有动态单元格的 TableViewController,其中包含 3 个标签和一个 imageView。我在情节提要中创建了它。看起来像这样...
- Label1
oImg - Label2
- Label3
并且,Label2 垂直居中于 imageView(称之为 constraint-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 跟随)
为 label1 和 label2 的 y-cord 约束创建 IBOutlet 属性,然后更改 "your property name".constraint = "some value" 而不是更改帧 y-cord。
//set above image 2
cell.constLbl.constant = -(cell.lbl3.frame.size.height / 2 - 10); // this obj below img 1
cell.constLbl3Top.constant = cell.lbl3.frame.size.height / 2; // this obj below img 2