uilabel 视图未向右对齐
Posted
技术标签:
【中文标题】uilabel 视图未向右对齐【英文标题】:uilabel view not aligning to right 【发布时间】:2016-04-28 10:17:47 【问题描述】:我什么都试过了
textLabel.textAlignment =NSTextAlignmentRight;
但我的代码似乎没有任何效果。在单元格内forrawatindexpath
- (UITableViewCell *)tableView:(UITableView *)myTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
UITableViewCell *cell = (UITableViewCell *)[self.messageList dequeueReusableCellWithIdentifier:@"ChatListItem"];
if (cell == nil)
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"OutGoing" owner:self options:nil];
cell = (UITableViewCell *)[nib objectAtIndex:0];
textLabel = (UILabel *)[cell viewWithTag:1];
textLabel.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"chat_b2.png"]];
textLabel =[[UILabel alloc] initWithFrame:CGRectMake(21,12, 241,30)];
NSString * test=[[rssOutputData objectAtIndex:indexPath.row]xml_msg];
textLabel.text = test;
textLabel.numberOfLines = 0;
[textLabel sizeToFit];
[cell addSubview:textLabel];
return cell;
这里是截图:
在这里你可以看到(红色)文本左对齐我希望它右对齐请帮我解决这个问题。
【问题讨论】:
你把那个标签放在哪里。 ?你在使用什么 Autolayout/AutoResizing .. ? 使用自动调整大小 此方法已过时。是时候使用 autoLayout 了。请查看apple documentation。试试看吧! 【参考方案1】:使用[textLabel sizeToFit]
标签框架将调整大小以使文本适合其中,因此您的标签宽度将与文本相同并且向右对齐将使文本留在原处。评论这一行,它会工作。
编辑:
[textLabel sizeToFit];
[textLabel setFrame:CGRectMake(21,12,241,textLabel.frame.size.height)];
【讨论】:
@VixHunk 在模拟器中转到下拉菜单调试并打开“颜色混合图层”,这将为您提供标签准确位置及其大小的线索 是的,你是对的,但是当我评论 [textLabel sizeToFit] 时,每条完整的消息都在一行中起作用。 @VixHunk 太好了,我很高兴听到它 :)【参考方案2】:如果您使用sizetoFit
,那么您的标签大小将根据内容大小而减小。这不是对齐问题。删除此行,然后添加 textLabel.textAlignment =NSTextAlignmentRight;
并检查它应该可以工作。
【讨论】:
【参考方案3】:您总是将 textLabel 框架设置为以下框架:
textLabel =[[UILabel alloc] initWithFrame:CGRectMake(21,12, 241,30)];
所以只有标签出现在左边。尝试根据发送/接收消息更改标签框。
希望对你有帮助..
【讨论】:
【参考方案4】:您的标签是对您给定框架的约束
textLabel =[[UILabel alloc] initWithFrame:CGRectMake(21,12, 241,30)];
所以它与您给出的框架右对齐,即您的标签与特定宽度对齐,即 30 ......您应该给标签的宽度等于单元格的宽度,并且然后它将根据您的单元格右对齐。
【讨论】:
以上是关于uilabel 视图未向右对齐的主要内容,如果未能解决你的问题,请参考以下文章
UILabel 对齐并将一个视图移动到不同大小类中的另一个视图
在使用视图 iOS 滚动 uilabel 时保持标签文本与屏幕中心对齐?