在表视图节标题中垂直居中UILabel文本

时间:2013-01-23 15:31:58

标签: iphone ios uitableview

如何更改tableview部分中文本的位置?我使用viewForHeaderInSection:Section,我创建了这样的东西:

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {

    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 300, 30)];
    label.backgroundColor = [UIColor blackColor];
    label.textColor = [UIColor whiteColor];
    label.font = [UIFont fontWithName:@"Gotham-Bold" size:17.0f];

    id <NSFetchedResultsSectionInfo> sectionInfo = [[self.comlpetedFetchedResultsController sections] objectAtIndex:section];
    label.text = [@" " stringByAppendingString:[sectionInfo name]];
    return label;
}

UILabel框架中的参数大小无关紧要,我总是得到相同的结果:

enter image description here

如何在UILabel中垂直居中显示文字? 感谢

3 个答案:

答案 0 :(得分:4)

尝试

[yourLabel setNumberOfLines:0];
[yourLabel sizeToFit];
[yourLabel setContentMode:UIViewContentModeCenter];

答案 1 :(得分:3)

将标签放在UIView中,然后返回视图:

UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 300, 30)];
[view addSubview:label];
return view;

确保您实施以下方法:

-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section

否则您的视图将仅位于单元格之上。

答案 2 :(得分:2)

浏览此链接:NSTextAlignment

下面给出的代码片段可以帮到你

  UILabel *myLabel = [[UILabel alloc] init];

  [myLabel setText:@"Abc"];
  [myLabel setTextAlignment:NSTextAlignmentCenter];