我正在使用静态单元格创建表格视图。某些单元格需要自定义样式,因为左侧包含标签,右侧包含文本字段。
我想将左边的标签与基本单元格样式的标题对齐,但我找不到这样做的方法。
以下是我的应用目前所看到的内容:
以下是Basic样式中对齐标签的样子:
我正在使用带有大小类和约束的自动布局。
答案 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概述了问题和解决方案