6

所以我试图有一个自定义的 UITableViewCell ,如下所示:

查看第二列标题以及它们的左侧如何与中心对齐

我试图让细节标签左对齐,并将标题标签上的内容设置得更高。

所以我面临的挑战是我希望标题单元格第二列的左边缘与整个视图的中心对齐。

有没有办法做到这一点?

4

4 回答 4

6

尝试使用几个分组视图,每列一个。将每个列视图的外边缘固定到单元格内容视图的边缘,然后为列视图添加等宽约束。

一旦你有你的包含列视图,你可以在每个内部布局标签。

在此处输入图像描述

在此处输入图像描述

于 2013-11-12T20:52:22.833 回答
2

添加等宽约束,向左视图添加前导空间约束,在右侧添加尾随空间,以及它们之间的水平间距。

在此处输入图像描述

于 2015-04-29T12:40:26.570 回答
1

当然,您可以将它们放在 UIView 中,并且视图左边缘将等于 CenterX,因此它们将在中间对齐。或者您可以将顶部标题单元格与 CenterX 对齐,并使每个标题的前缘与之匹配。您可以通过多种方式实现您在此处提出的要求。

NSLayoutContraint *constraint = [NSLayoutConstraint constraintWithItem:label attribute:NSLayoutAttributeCenterX relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeCenterX multiplier:1.0f constant:0.0f];
[self.view addConstraint:constraint];

NSArray *constraints [NSLayoutConstraint
                      constraintsWithVisualFormat:@"V:|[label1]-(5)-[label2]-(5)-[label3]|"
                      options:NSLayoutFormatAlignAllLeading
                      metrics:nil
                      views:@{ @"label1" : label1, @"label2" : label2, @"label3" : label3 }];
[self.view addConstraints:constraints];

上面只是示例,如果您也愿意,您可以在代码中执行此操作,self.view 是一个视图,但如果您想要 UITableViewCell 的内容视图,您可以将其切换到该视图。

于 2013-11-12T20:42:22.527 回答
0

我无法得到上面的建议,所以我用另一种方式做了。

  • InnerView1 50% 宽度的 ContentView & 固定在左边
  • InnerView2 ContentView 的 50% 宽度并固定在右侧

简单的。

于 2016-06-16T07:46:01.137 回答