代码之家  ›  专栏  ›  技术社区  ›  David Liu

包装时,UILabel未完全对准中心

  •  2
  • David Liu  · 技术社区  · 14 年前

    如图所示: 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 回复  |  直到 14 年前
        1
  •  1
  •   v01d    14 年前

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