2013-05-08 59 views
0

我对标签文本有问题。 标签文字不会显示所有他获得的文字。 我把NSlog,我能够看到所有的文字,但一些reasom不能标签。UILabel文本问题

我的代码:

-(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的文字:

enter image description here

和文字的UILabel:

enter image description here

在NSLog的标记文本缺少的UILabel .. 遗憾的语言。

什么可能导致问题?我疯了,我试了一切! 在此先感谢!

+0

你能告诉我们的结果吗? – 2013-05-08 14:11:20

+0

编辑我的帖子.. – OshriALM 2013-05-08 16:43:36

+0

只有两种解决方案:你的UILabel的高度太小(但你的calculateSize方法应该没关系)或者如果你的UILabel在你的滚动视图内,也许它是你的scrollview的内容太小。 – 2013-05-10 06:58:21

回答

1

只有为何标签不会显示所有文本

  1. 帧大小的几个原因,它看起来像你覆盖especaily,因为你可以看到 一些文字
  2. 的字体/大小/措辞太大,反过来又没有足够的空间显示文字。

在你的情况,我建议看看字体或字体大小。

+0

你是对的,我改变了字体大小,我可以disaply所有的文字。 但是如果我想要字体大小更大?我该怎么办? – OshriALM 2013-05-10 19:35:45

+0

你可以做几件事情。首先增加标签的大小以适应字体。第二个使用约束条件为标签赋予增加x量的能力。第三,你可以使用uitextview,这样文本会自动进入下一行。另外,如果我的回答是正确的,可以随意标记它。 :) – 2013-05-10 22:22:05

0

你看到了什么文字以及剪辑的内容(标题,发布日期,说明)?

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

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

试过它没有成功..我编辑我的帖子,你能试图帮助我吗? – OshriALM 2013-05-10 13:06:55