我正在尝试将单元格文本与表格视图的左侧完全齐平。我尝试设置tableView.contentInset = UIEdgeInsetsMake(-4,-8,0,0),这适用于滚动视图,但使用tableView,内容仍然只是向右显示。
有没有人知道我需要的确切数字,以使内容与表格视图的一面齐平,或者可能以不同的方式执行此操作?
这就是我的意思(蓝色字母如何向右移动):
(^这是默认的contentInset)
答案 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;
}