iOS開發(fā)之UILabel
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展示動(dòng)態(tài)內(nèi)容
使用UILabel展示靜態(tài)的內(nèi)容是一件很簡(jiǎn)單的事情。但是有些時(shí)候,我們需要從后臺(tái)獲取數(shù)據(jù),然后再由UILabel展示,這個(gè)時(shí) 候,UILabel的內(nèi)容并不是固定的,如果我們給出一個(gè)靜態(tài)的尺寸,很可能就會(huì)造成顯示上的問題。這種情況下,我們可以借助其他的一些手段來處理。下面 是處理的代碼:
- /*根據(jù)label內(nèi)容來調(diào)整label的高度*/
- - (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;
- }
本文鏈接:http://my.oschina.net/yulei1943/blog/293200