将自定义UITableViewCell内容与标题对齐

时间:2015-04-02 08:59:14

标签: ios uitableview

我正在使用静态单元格创建表格视图。某些单元格需要自定义样式,因为左侧包含标签,右侧包含文本字段。

我想将左边的标签与基本单元格样式的标题对齐,但我找不到这样做的方法。

以下是我的应用目前所看到的内容:

My App

以下是Basic样式中对齐标签的样子:

System Preferences

我正在使用带有大小类和约束的自动布局。

4 个答案:

答案 0 :(得分:0)

我也遇到过类似的问题。

我的要求是,

1)创建一个包含标题和单元格的tableview。

2)标题将有3个标签,在这些标签下,单元格将保存标题中相应标签的相应数据。

为了达到上述要求,我在标题框中标注了标签,并根据标题中的标签位置和大小,根据标题标签重新构建了单元格的标签。

我在TableView的委托方法- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath

中实现了上述功能

根据标题的位置和大小重新定位每个单元格的标签。

例如 -

-(void) tableView:(UITableView *) tableView willDisplayCell:(UITableViewCell *) cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
         // customize the cell just before it will be displayed

         // access section header
         UIView *sectionHeader = [tableView headerViewForSection:indexPath.section];

         // access section header label
         UILabel *headerLeftLabel = (UILabel *)[sectionHeader viewWithTag:HEADER_LABEL_TAG];

         // access cell's corresponding label which is to be aligned as the header's above label 
         UILabel *leftCellLabel = (UILabel *)[cell.contentView viewWithTag:CELL_LABEL_TAG];

         // align/ reframe the cells label with the corresponding label in the header
         [leftCellLabel setFrame: headerLeftLabel.frame];

         // similar for other labels

}

答案 1 :(得分:0)

感谢您的帮助,似乎这已由Xcode 6.3自动解决

答案 2 :(得分:0)

节标题或系统定义的Right Detail样式单元格的前导空格在不同的屏幕方向下是不同的。在肖像模式下它是16分,在横向模式下是20分。虽然Detail标签的尾随空格不断为15分。

目前我所做的是为自定义单元格中每个视图的主要锚点约束创建出口,并使用以下方法更改它们的常量:

override func viewWillLayoutSubviews() {
    super.viewWillLayoutSubviews();
    // 16 in portrait mode, and 20 in landscape mode, act as the baseline
    let spacing = titleLabelOfRightDetailCell.frame.origin.x; 
    // leadingAnchorConstraints is an array of views within custom table view cells that need to be left aligned
    for constraint in leadingAnchorConstraints {
        constraint.constant = spacing;
    }
}

这样我就可以确保所有表视图单元格在纵向模式或横向模式下保持对齐。

编辑:

找到更优雅的解决方案:Matching left alignment of custom & standard UITableViewCell types

答案 3 :(得分:0)

请看以下帖子。 Matching left alignment of custom & standard UITableViewCell types概述了问题和解决方案