我有一個UILabel,如果我強制框架高度足夠高,就可以正確包裝單詞。但是,我希望它動態地找到適當的高度,並且sizeWithFont
方法沒有這樣做;該方法只是創建我的標籤一行:CGSize sizeWithFont沒有返回正確的高度
CGSize subtitleSize=[subtitle sizeWithFont:subtitleFont forWidth:maxwidth lineBreakMode:UILineBreakModeWordWrap];
然後我用這個函數相同的文字,字體和大小:
UILabel *subLabel=[[[UILabel alloc] initWithFrame:CGRectMake(0, 0, maxwidth, subtitleSize.height)]autorelease];
subLabel.font=subtitleFont;
subLabel.text=subtitle;
subLabel.numberOfLines=0;
subLabel.lineBreakMode=UILineBreakModeWordWrap;
它看起來像它應該所有的工作,並給我一個大小,然後我使用。但尺寸的高度始終只是標籤的一條線。
我知道這是一個老問題,但我也試圖使用sizeWithFont:forWidth:lineBreakMode:最初。我認爲,因爲它只問寬度,它會使用最大浮動高度。但是,文檔中明確指出:「如果要在一行中使用指定的字體和行屬性進行渲染,則返回字符串的大小。」單線部分是訣竅。您必須使用指定constrainedToSize的大小方法之一。 – 2013-09-18 13:35:36
@MattBecker你是一個學者,也是一個紳士。 – johnbakers 2013-09-18 14:02:11