8

我希望我的文字应该正确对齐。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:@"lisn"];
cell=[[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"lisn"] autorelease];
CGSize  textSize = { 210.0, 10000.0 };
CGSize size = [[gMessageArray objectAtIndex:indexPath.row] sizeWithFont:[UIFont systemFontOfSize:12] constrainedToSize:textSize lineBreakMode:UILineBreakModeWordWrap];

UILabel *lisnerMessage=[[[UILabel alloc] init] autorelease];
lisnerMessage.backgroundColor = [UIColor clearColor];
[lisnerMessage setFrame:CGRectMake(75 ,20,size.width + 5,size.height+2)];
lisnerMessage.numberOfLines=0;
lisnerMessage.textAlignment=UITextAlignmentRight;
lisnerMessage.text=[gMessageArray objectAtIndex:indexPath.row];
[cell.contentView addSubview:lisnerMessage];
return cell
}

但我的文字不正确请帮助

4

4 回答 4

14

因为您正在使用 sizeWithFont 然后将框架设置为该大小,所以您的文本正确对齐。尝试在标签中添加浅灰色的背景色,看看我在说什么。您的标签应设置为与表格单元格相同的大小,并允许文本在其中流动。然后它将向右对齐。

更新样本

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"lisn"];
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"lisn"];

    UILabel *lisnerMessage = [[UILabel alloc] init];
    lisnerMessage.backgroundColor = [UIColor clearColor];
    [lisnerMessage setFrame:cell.frame];
    lisnerMessage.numberOfLines = 0;
    lisnerMessage.textAlignment = NSTextAlignmentRight;
    lisnerMessage.text = [gMessageArray objectAtIndex:indexPath.row];
    [cell.contentView addSubview:lisnerMessage];

    return cell
}
于 2012-06-27T14:36:57.567 回答
9

标签右对齐

yourLabel.textAlignment = NSTextAlignmentRight;
于 2014-05-09T04:12:53.860 回答
1

最后我解决了我的问题。我犯了一个小错误

[lisnerMessage setFrame:CGRectMake(75 ,20,size.width + 5,size.height+2)];

我只是删除size.width并给出我的特定坐标 200 之后文本对齐。

[lisnerMessage setFrame:CGRectMake(75 ,20,200,size.height+2)];

谢谢大家的回复

于 2012-06-28T07:34:39.550 回答
0

为什么不在界面生成器/情节提要中制作标签并选择“右对齐”选项?然后将其连接为一个名为 lisnerMessage 的属性, lisnerMessage.text=[gMessageArray objectAtIndex:indexPath.row]; 这将显着减少您编写的代码量并且绝对可以工作。

于 2012-06-27T14:44:50.537 回答