从TableViewController控制单元格项的约束

时间:2016-05-27 03:06:18

标签: ios swift uitableview autolayout nslayoutconstraint

我有一个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)

2 个答案:

答案 0 :(得分:1)

enter image description here enter image description here

 //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

enter image description here enter image description here

答案 1 :(得分:0)

为label1和label2的y-cord约束创建IBOutlet属性,然后更改"您的属性名称" .constraint ="某些值"而不是改变框架y线。