从UITableView标题部分设置UILabel文本

时间:2013-01-23 15:04:01

标签: objective-c uitableview tableheader

我有一个UITableView分区,并且想要在标签上设置一个标签(不在tableview中)。

我在

中尝试了[label setText:@"name"];的设置标签
 (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section 

但这不起作用。其他人有想法如何做到这一点?

3 个答案:

答案 0 :(得分:5)

试试这个

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 30, 60)];
    headerView.backgroundColor = [UIColor clearColor];

    UILabel *label = [[UILabel alloc] initWithFrame: CGRectMake(0,0, 50, 50)];
    label.backgroundColor = [UIColor yellowColor];
    label.autoresizingMask = UIViewAutoresizingFlexibleRightMargin;

    [headerView addSubview:label];
    return headerView;
}

答案 1 :(得分:2)

如果您正在使用该方法,则只需返回字符串即可。它将处理为您创建标签。

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
    return @"Name";
}

如果您想使用自己的UIViewUILabel,则需要使用其他dataSource方法。

- (UIView *) tableview:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    UILabel *customLabel = [[UILabel alloc] initWithFrame:CGRect(0.0,0.0,100.0,20.0)];
    [customLabel setText:@"name"];

    return customLabel;
}

答案 2 :(得分:2)

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
    self.tableView1.tag = 1;
    if ( [tableView tag] == 1 ) {
        return @"TableView One Title";   
    }
    return @"other Tableview Title";        
}