为什么此代码中需要“sizeToFit”调用?

时间:2011-03-10 01:57:59

标签: iphone ios uilabel sizetofit

任何人都可以在下面的代码中突出显示为什么“[aLabel sizeToFit]”行,取自here

也就是说,创建的CGRect已根据文本字体大小调整大小,那么为什么需要sizeToFit呢?或者是因为虽然他们计算了正确的CGRect大小,但他们实际上没有将预先约定的字体(系统字体)设置为UILabel? (因此有效地称为sizeToFit而不是设置字体)

- (CGRect)RAD_frameForCellLabelWithSystemFontOfSize:(CGFloat)size {
    CGFloat width = [UIScreen mainScreen].bounds.size.width - 50;
    CGFloat height = [self RAD_textHeightForSystemFontOfSize:size] + 10.0;
    return CGRectMake(10.0f, 10.0f, width, height);
}

- (void)RAD_resizeLabel:(UILabel *)aLabel WithSystemFontOfSize:(CGFloat)size {
    aLabel.frame = [self RAD_frameForCellLabelWithSystemFontOfSize:size];
    aLabel.text = self;
    [aLabel sizeToFit];    // WHY IS THIS REQUIRED
}

1 个答案:

答案 0 :(得分:2)

来自docs:

  

如果需要,请调用此方法   调整当前视图的大小以便它   使用最合适的量   空间。特定的UIKit视图调整大小   自己照自己的意思   内部需求。在某些情况下,如果一个   视图没有超视图,它可能   大小本身到屏幕边界。   因此,如果您希望给定视图的大小   你应该在它的父视图中找到它自己   之前将其添加到父视图中   调用这种方法。

选择适合您案例的正确答案。