UILabel在包装时没有完美对齐

时间:2010-06-20 08:07:38

标签: iphone cocoa-touch ipad uikit

例如,见图片:http://img25.imageshack.us/img25/6996/90754687.png
灰色背景表示UILabel帧的大小。

出于某种原因,包装文本的第一行似乎并不总是居中,即使我正在使用UITextAlignmentCenter。

以下是我用来设置标签的代码:

    self.titleLabel = [[UILabel alloc] initWithFrame:CGRectZero];
    titleLabel.font = [UIFont boldSystemFontOfSize:fontHeight];
    titleLabel.backgroundColor = [UIColor grayColor];
    titleLabel.numberOfLines = 2;
    titleLabel.lineBreakMode = UILineBreakModeMiddleTruncation;

    NSString * title = file.name;
    CGSize maximumSize = CGSizeMake(thumbnailWidth+4,fontHeight * 3);
    UIFont * font = [UIFont boldSystemFontOfSize:12];
    CGSize stringSize = [title sizeWithFont:font constrainedToSize:maximumSize lineBreakMode:titleLabel.lineBreakMode];

    CGRect stringFrame = CGRectMake(0, thumbnailHeight + thumbnailPadding, thumbnailWidth + 4, stringSize.height);
    titleLabel.text = title;
    titleLabel.frame = stringFrame;
    titleLabel.textAlignment = UITextAlignmentCenter;

1 个答案:

答案 0 :(得分:1)

这是因为文本中没有空格吗?在IB中,如果没有空格,它似乎就像你得到的那样反应。将换行模式设置为字符换行往往会使第二行居中到第一行,但这可能不完全是你想要的。