【问题标题】:Centering UILabel in UITableViewCell using Auto Layout使用自动布局在 UITableViewCell 中将 UILabel 居中
【发布时间】:2014-01-31 06:18:09
【问题描述】:

我是 Xcode 中自动布局的新手,所以我需要你的帮助。

我有一个自定义 tableView 单元格,左侧有一个 UILabel,右侧有三个,我希望它们像这样居中:

(虚线表示单元格的中心)。

所以我希望左边的标签在左侧居中,右侧三个单元格在右侧居中。

此外,我希望能够删除单元格右侧的三个标签之一,并将剩余的两个标签居中。 (在代码中)。像这样:

【问题讨论】:

    标签: ios iphone objective-c interface-builder autolayout


    【解决方案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。您指定与左边界的距离是多少,如果单元格变大,它将不会停留在左半部分的中心。
    • 实际上自动布局没有“左半边或右半边中心”这样的功能。您必须以编程方式计算每个方向的距离。对于旋转,你也必须这样做.. :(
    猜你喜欢
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-28
    • 2015-12-29
    • 2012-09-28
    • 2017-01-08
    • 2014-03-08
    相关资源
    最近更新 更多