使单元格内容与UITableView的边缘齐平

时间:2012-11-06 21:03:55

标签: ios uitableview

我正在尝试将单元格文本与表格视图的左侧完全齐平。我尝试设置tableView.contentInset = UIEdgeInsetsMake(-4,-8,0,0),这适用于滚动视图,但使用tableView,内容仍然只是向右显示。

有没有人知道我需要的确切数字,以使内容与表格视图的一面齐平,或者可能以不同的方式执行此操作?

这就是我的意思(蓝色字母如何向右移动):

enter image description here

(^这是默认的contentInset)

2 个答案:

答案 0 :(得分:0)

更改表视图的contentInset不是正确的方法。细胞已经到达桌子的边缘。您可以通过设置单元格的背景颜色来验证这一点。默认情况下,单元格的textLabel设置为距边缘稍远。您应该尝试调整单元格textLabel的框架。最佳位置最有可能是tableView:willDisplayCell:forRowAtIndexPath:委托方法。

另一个选项是自定义表格视图单元格,它将文本放在单元格中,而不是依赖于更改默认设置。

答案 1 :(得分:0)

对我来说,最好的方法是创建一个实例UILabel变量,然后初始化你的cellForRow中的UILabel:AtIndexPath:方法。

您可以将框架定义为您喜欢的任何内容。给它一个标签号。

准备好后,将UILabel作为子视图添加到您的cell.contentView。

// .h file
@interface MyClass
{
    UILabel *lblCellText;
}

// .m file
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString *cellID = @"cellID";

    UITableViewCell *cell = [tableView dequeReusableCellWithID:cellID];

    if(cell == nil)
    {
        cell = [[UITableViewCell alloc] initWithStyle.....];

        // ------------------------------------
        // initialise your UILabel here
        // ------------------------------------
        lblCellText = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width, tableView.rowHeight)];
        lblCellText.tag = 1;

        [cell.contentView addSubview:lblCellText];

        [lblCellText release];
    }

    // find your UILabel from the pool of dequed UITableViewCells
    lblCellText = (UILabel *)[cell.contentView viewWithTag:1];

    lblCellText.text = "New playlist";


    return cell;
}