UILabel是iOS開發(fā)中常用的一個(gè)組件,主要用來顯示內(nèi)容。
UILabel的主要使用如下:
/*尺寸*/ CGRect labelRect = CGRectMake(100, 100, 80, 40); /*初始化*/ UILabel *titleLabel = [[UILabel alloc] initWithFrame:labelRect]; /*一些屬性的設(shè)置*/ titleLabel.font = [UIFont systemFontOfSize:16.0f]; titleLabel.textColor = [UIColor blueColor]; titleLabel.text = @"標(biāo)題"; /*將UILabel添加到視圖上*/ [self.view addSubview:titleLabel];以上是UILabel的一些基本屬性,另外還有一些文字位置等屬性可以設(shè)置。具體的信息可以參看iOS Developer Library中關(guān)于UILabel的定義。
使用UILabel展示靜態(tài)的內(nèi)容是一件很簡單的事情。但是有些時(shí)候,我們需要從后臺獲取數(shù)據(jù),然后再由UILabel展示,這個(gè)時(shí)候,UILabel的內(nèi)容并不是固定的,如果我們給出一個(gè)靜態(tài)的尺寸,很可能就會造成顯示上的問題。這種情況下,我們可以借助其他的一些手段來處理。下面是處理的代碼:
- (void)resizeLabelByContent:(UILabel *)label{ CGSize maxSize = CGSizeMake(label.width, 999); label.numberOfLines = 0; NSString *contentStr = label.text; UIFont *contentFont = label.font; CGRect contentFrame; NSString *version = [[UIDevice currentDevice] systemVersion]; if ([version floatValue] < 7.0) { CGSize contentStringSize = [contentStr sizeWithFont:contentFont constrainedToSize:maxSize lineBreakMode:label.lineBreakMode]; contentFrame = CGRectMake(label.left, label.top, label.width, contentStringSize.height); } else { NSDictionary *contentDic = [NSDictionary dictionaryWithObjectsAndKeys:contentFont, NSFontAttributeName, nil]; CGSize contentStrSize = [contentStr boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:contentDic context:nil].size; contentFrame = CGRectMake(label.left, label.top, label.width, contentStrSize.height); } label.frame = contentFrame;}當(dāng)UILabel用來展示動(dòng)態(tài)內(nèi)容的時(shí)候,直接調(diào)用即可。
[titleLabel resizeLabelByContent];新聞熱點(diǎn)
疑難解答
圖片精選