【问题标题】:UILabel text issueUILabel 文本问题
【发布时间】:2013-05-08 14:05:41
【问题描述】:

标签文本有问题。 标签文本不会显示他得到的所有文本。 我放了一个 NSlog,我可以看到所有的文本,但是一些原因的标签不能。

我的代码:

-(void)viewDidLoad
{

    [super viewDidLoad];

    [_scroller setScrollEnabled:YES];
    [_scroller setContentSize:CGSizeMake(250, 420)];

    self.description = [_description stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];

    if ([self.description isEqualToString:@""]) {
        self.description = @"ללא תקציר";
    }
    [self positionLabel:self.lblTitle withText:self.stitle withY:10];
    [self positionLabel:self.lblPubDate withText:self.pubDate withY:CGRectGetMaxY(self.lblTitle.frame)+10 ];
    [self positionLabel:self.lblDescription withText:self.description withY:CGRectGetMaxY(self.lblPubDate.frame)+25 ];

-(void)positionLabel:(UILabel*)lbl withText:(NSString*)text withY:(CGFloat)Y
{
    lbl.textAlignment = UITextAlignmentRight;
    lbl.text = text;
    lbl.numberOfLines = 0;
    lbl.lineBreakMode = UILineBreakModeWordWrap;
    CGSize size = [self calculateSize:lbl];
    [lbl setFrame:CGRectMake(10 , Y , (size.width>300)?size.width:300 , size.height)];
    [_scroller addSubview:lbl];

}

-(CGSize)calculateSize:(UILabel*)lbl
{
    CGSize size = [lbl.text sizeWithFont:lbl.font
                       constrainedToSize:CGSizeMake(280, MAXFLOAT)
                           lineBreakMode:UILineBreakModeWordWrap];
    return size;
}

编辑

这里是 NSlog 文本:

和 UILabel 文本:

NSLog 中的标记文本缺少 UILabel.. 对不起语言。

什么可能导致问题?我快疯了,我什么都试过了!! 提前致谢!

【问题讨论】:

  • 你能告诉我们结果吗?
  • 只有两个解决方案:您的 UILabel 的高度太小(但使用您的 calculateSize 方法应该没问题)或者如果您的 UILabel 在您的滚动视图内,可能是您的滚动视图的内容大小太小。
  • 通过在 viewDidLoad 方法的末尾设置 contentsize 类似的东西: [_scroller setContentSize:CGSizeMake(250, lblDescription.frame.origin.y + lblDescription.frame.size.height + 10 / /last value 只是一个边距)];
  • 试过了,现在可以工作了.. 仍然缺少文本。

标签: ios objective-c uilabel


【解决方案1】:

标签不能显示所有文本的原因只有几个

  1. 帧大小,看起来你特别喜欢覆盖它,因为你可以看到 部分文字
  2. 字体/大小/措辞太大,没有足够的空间来显示文本。

在您的情况下,我建议查看字体或字体大小。

【讨论】:

  • 你是对的,我改变了字体大小,我能够显示所有的文本。但是如果我想要更大的字体怎么办?我该怎么办?
  • 你可以做几件事。首先增加标签的大小以适应字体。其次,使用约束使标签能够增长 x 数量。第三,您可以使用 uitextview,以便文本自动转到下一行。另外,如果我的答案是正确的,请随时标记它。 :)
【解决方案2】:

您看到了什么文本以及被剪辑的内容(标题、发布日期、描述)?

您还应该在放置所有标签后设置滚动条的内容大小:

CGFloat contentWidth = max X of labels frames;
CGFloat contentHeight = CGRectGetMaxY(self.lblDescription.frame);
[_scroller setContentSize:CGSizeMake(contentWidth, contentHeight)];

【讨论】:

  • 试了没成功..我编辑了我的帖子,你能帮我吗?
猜你喜欢
  • 2016-07-19
  • 1970-01-01
  • 1970-01-01
  • 2023-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多