UILabel文本问题

时间:2013-05-08 14:05:41

标签: ios objective-c uilabel

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

我的代码:

-(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 .. 对不起语言。

什么可能导致问题?我疯了,我尝试了一切! 提前谢谢!

2 个答案:

答案 0 :(得分:1)

标签不会显示所有文字的原因只有几个

  1. 框架尺寸,因为你可以看到它看起来像你特别覆盖 一些文字
  2. 字体/大小/措辞太大,反过来没有足够的空间来显示文字。
  3. 在你的情况下,我建议查看字体或字体大小。

答案 1 :(得分:0)

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

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

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