使用自动布局在 UITableViewCell 中将 UILabel 居中
Posted
技术标签:
【中文标题】使用自动布局在 UITableViewCell 中将 UILabel 居中【英文标题】:Centering UILabel in UITableViewCell using Auto Layout 【发布时间】:2014-01-31 06:18:09 【问题描述】:我是 Xcode 中自动布局的新手,所以我需要你的帮助。
我有一个自定义 tableView 单元格,左侧有一个 UILabel,右侧有三个,我希望它们像这样居中:
(虚线表示单元格的中心)。
所以我希望左边的标签在左侧居中,右侧三个单元格在右侧居中。
此外,我希望能够删除单元格右侧的三个标签之一,并将剩余的两个标签居中。 (在代码中)。像这样:
【问题讨论】:
【参考方案1】:我只是把我的逻辑..在cellForRowAtIndexPath
方法中使用所有标签的框架
LeftLabel.frame = CGRectMake((((cell.frame.size.width/2)-yourLabelWidth)/2, ((cell.frame.size.height-yourLabelHeight)/2, yourLabelWidth, yourLabelHeight));
CGFloat rightLblX = ((cell.frame.size.width/2) - (5*yourTotalNumberOfLabel))/2;
rightLabel_one.frame = CGRectMake(rightLblX, ((cell.frame.size.height-yourLabelHeight)/2, yourLabelWidth, yourLabelHeight);
rightLblX = rightLblX + 5;
rightLabel_two.frame = CGRectMake(rightLblX, ((cell.frame.size.height-yourLabelHeight)/2, yourLabelWidth, yourLabelHeight);
rightLblX = rightLblX + 5;
rightLabel_three.frame = CGRectMake(rightLblX, ((cell.frame.size.height-yourLabelHeight)/2, yourLabelWidth, yourLabelHeight);
【讨论】:
那不是使用自动布局。【参考方案2】:朋友来了:
对于左标签, 1. Ctrl+从标签拖动到单元格并选择“在容器中垂直居中”。 2. Ctrl+从左侧标签拖动到单元格并选择“在容器中水平居中”。 3. 如果第 2 步放置不正确,请撤消第 2 步并选择“容器中的前导空间”。
这对于左标签来说已经足够了。
对于正确的标签, 对每个标签重复相同的步骤。这将解决您的问题。如果您还需要帮助,请告诉我.. :)
【讨论】:
是的,我需要更多帮助 :D 通过第 2 步,您将左标签放在单元格的中心,但我想在单元格的左半部分居中。通过茎 3。您指定与左边界的距离是多少,如果单元格变大,它将不会停留在左半部分的中心。 实际上自动布局没有“左半边或右半边中心”这样的功能。您必须以编程方式计算每个方向的距离。对于旋转,你也必须这样做.. :(以上是关于使用自动布局在 UITableViewCell 中将 UILabel 居中的主要内容,如果未能解决你的问题,请参考以下文章
Swift:在 UITableViewCell 中异步加载图像 - 自动布局问题
使用自动布局在自定义 UITableViewCell 上分页 UIScrollView
使用自动布局在 UITableViewCell 中将 UILabel 居中
让 UITableViewCell 使用自动布局调整自身大小