将文本与UITableViewCell对齐的问题

时间:2012-08-30 16:44:53

标签: objective-c ios uitableview tableview

我在tableView中有一个普通的单元格,当我想将文本对齐时,我使用:

if (cell == nil) {
     cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];        
     cell.textLabel.textAlignment = UITextAlignmentRight;           
}

但现在我想使用UITableViewCell同时显示detailTextLabel我试图将它再次对齐但没有任何反应:

if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"MyIdentifier"] autorelease];
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
    cell.textLabel.textAlignment = UITextAlignmentRight;
    cell.detailTextLabel.textAlignment = UITextAlignmentRight;    
}

3 个答案:

答案 0 :(得分:3)

如果要自定义,请将自己的UILabel作为子视图添加到单元格中:

cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"MyIdentifier"] autorelease];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
cell.textLabel.textAlignment = UITextAlignmentRight;
UILabel *subLabel = [UILabel alloc] initWithFrame:CGRectMake(x,y,w,h)]; //put in the frame variables you desire
subLabel.textAlignment = UITextAlignmentRight;
subLabel.tag = 20;
subLabel.text = @"my text";
[cell.contentView addSubview:subLabel];
[subLabel release]; //dont call this if you are using ARC

...

然后您稍后访问该标签:

[[cell.contentView viewWithTag:20] setText:@"new text"];

希望这会有所帮助。

答案 1 :(得分:1)

您是否检查过detailTextLabel的长度是否与框架一样大?如果框架的大小足以完全适合文本,那么UITextAlignmentRight可能看起来不起作用。

答案 2 :(得分:0)

尝试实施tableView:willDisplayCell:forRowAtIndexPath:委托方法并将重新对齐代码放在那里!