iOS开发之UILabel

移动开发 iOS
使用UILabel展示静态的内容是一件很简单的事情。但是有些时候,我们需要从后台获取数据,然后再由UILabel展示,这个时候,UILabel的内容并不是固定的,如果我们给出一个静态的尺寸,很可能就会造成显示上的问题。这种情况下,我们可以借助其他的一些手段来处理。

UILabel是iOS开发中常用的一个组件,主要用来显示内容。

UILabel的主要使用如下:

  1. /*尺寸*/ 
  2. CGRect labelRect = CGRectMake(1001008040); 
  3. /*初始化*/ 
  4. UILabel *titleLabel = [[UILabel alloc] initWithFrame:labelRect]; 
  5. /*一些属性的设置*/ 
  6. titleLabel.font = [UIFont systemFontOfSize:16.0f]; 
  7. titleLabel.textColor = [UIColor blueColor]; 
  8. titleLabel.text = @"标题"
  9. /*将UILabel添加到视图上*/ 
  10. [self.view addSubview:titleLabel]; 

以上是UILabel的一些基本属性,另外还有一些文字位置等属性可以设置。具体的信息可以参看iOS Developer Library中关于UILabel的定义。

利用UILabel展示动态内容

使用UILabel展示静态的内容是一件很简单的事情。但是有些时候,我们需要从后台获取数据,然后再由UILabel展示,这个时 候,UILabel的内容并不是固定的,如果我们给出一个静态的尺寸,很可能就会造成显示上的问题。这种情况下,我们可以借助其他的一些手段来处理。下面 是处理的代码:

  1. /*根据label内容来调整label的高度*/ 
  2. - (void)resizeLabelByContent:(UILabel *)label 
  3.     CGSize maxSize = CGSizeMake(label.width, 999); 
  4.     label.numberOfLines = 0
  5.     NSString *contentStr = label.text; 
  6.     UIFont *contentFont = label.font; 
  7.   
  8.     CGRect contentFrame; 
  9.   
  10.     NSString *version = [[UIDevice currentDevice] systemVersion]; 
  11.     if ([version floatValue] < 7.0) { 
  12.         CGSize contentStringSize = [contentStr sizeWithFont:contentFont                 constrainedToSize:maxSize lineBreakMode:label.lineBreakMode]; 
  13.         contentFrame = CGRectMake(label.left, label.top, label.width,               contentStringSize.height); 
  14.     } else { 
  15.         NSDictionary *contentDic = [NSDictionary                dictionaryWithObjectsAndKeys:contentFont, NSFontAttributeName, nil]; 
  16.         CGSize contentStrSize = [contentStr boundingRectWithSize:maxSize                options:NSStringDrawingUsesLineFragmentOrigin attributes:contentDic                 context:nil].size; 
  17.         contentFrame = CGRectMake(label.left, label.top, label.width,           contentStrSize.height); 
  18.     } 
  19.     label.frame = contentFrame; 

本文链接:http://my.oschina.net/yulei1943/blog/293200

责任编辑:chenqingxiang 来源: oschina
相关推荐

2014-07-23 13:17:53

iOSUITextField

2011-08-02 11:07:42

iOS开发 UIWebView

2017-02-15 09:25:36

iOS开发MQTT

2011-08-11 16:50:04

iOSTwitter

2013-07-29 04:51:41

iOS开发iOS开发学习file列表查看

2013-04-11 16:08:50

iOS开发技巧积累

2013-07-25 15:15:26

iOS开发学习iOS全局变量

2013-07-25 15:19:23

iOS开发学习Xcode打包framiOS开发

2014-08-08 10:12:44

IRC

2017-12-25 14:59:47

APP架构iOS协议

2013-07-24 16:47:23

iOS开发学习iOS协议代理传值

2013-12-17 11:04:10

iOS开发传感器

2013-07-29 05:01:31

iOS开发iOS开发学习按钮拖动和点击

2012-01-18 13:46:37

ARCiOS

2011-08-02 09:22:41

iOS iPhone

2013-07-23 07:34:54

iOS开发学习适配iphone5

2011-08-02 11:30:41

iOS开发 邮件发送

2014-07-10 10:02:01

iOSHome Kit框架

2013-12-17 15:32:20

iOS开发NewsstandKi

2014-08-04 17:46:15

NavBarTarBar
点赞
收藏

51CTO技术栈公众号