2013-05-08 81 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