我們經(jīng)常會(huì)遇到將Label中文字置頂斟薇,也就是將文字頂?shù)絃able框的最頂端顯示的需求抢肛,UILabel是無(wú)法對(duì)內(nèi)容文字進(jìn)行置頂處理的僵闯,所以翔横,如果我們不對(duì)Label加以額外的設(shè)置缅刽,就會(huì)出現(xiàn)如下情況:
解決辦法:我們可以通過(guò)sizeToFit方法解決它:
- (void)viewDidLoad {
[super viewDidLoad];
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake((self.view.bounds.size.width - 200)/2, 100, 200, 150)];
label.backgroundColor = [UIColor yellowColor];
NSString *labelText = @"我不知道如何置頂啊掏,誰(shuí)來(lái)告訴我?";
[label setText:labelText];
[label setNumberOfLines:0];
//讓內(nèi)容置頂
[label sizeToFit];
[self.view addSubview:label];
}
最后的出的效果圖是:
但是有些小伙伴會(huì)對(duì)內(nèi)容置頂后的Label的frame有些顧慮衰猛,筆者也有迟蜜,所以就在Label后方放置了一個(gè)和初始Label具有相同frame的紅色背景,那么如果設(shè)置sizeToFit方法后啡省,即使Label的frame有變化娜睛,我們也可以通過(guò)和紅色背景的frame相對(duì)比而看出:
我們可以看到髓霞,文字內(nèi)容置頂后,原Label的origin幾乎沒(méi)有變化畦戒,而bounds適應(yīng)了文字方库,大小改變了。
所以不難看出障斋,通過(guò)sizeToFit方法纵潦,我們可以將Label的大小“剛好”緊貼文字外部,從而實(shí)現(xiàn)了置頂?shù)男Ч?/p>