iOS开发之UILabel
UILabel是iOS开发中常用的一个组件,主要用来显示内容。
UILabel的主要使用如下:
/*尺寸*/
CGRect labelRect = CGRectMake(100, 100, 80, 40);
/*初始化*/
UILabel *titleLabel = [[UILabel alloc] initWithFrame:labelRect];
/*一些属性的设置*/
titleLabel.font = [UIFont systemFontOfSize:16.0f];
titleLabel.textColor = [UIColor blueColor];
titleLabel.text = @"标题";
/*将UILabel添加到视图上*/
[self.view addSubview:titleLabel];
以上是UILabel的一些基本属性,另外还有一些文字位置等属性可以设置。具体的信息可以参看iOS Developer Library中关于UILabel的定义。
利用UILabel展示动态内容
使用UILabel展示静态的内容是一件很简单的事情。但是有些时候,我们需要从后台获取数据,然后再由UILabel展示,这个时候,UILabel的内容并不是固定的,如果我们给出一个静态的尺寸,很可能就会造成显示上的问题。这种情况下,我们可以借助其他的一些手段来处理。下面是处理的代码:
- (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;
}
当UILabel用来展示动态内容的时候,直接调用即可。
[titleLabel resizeLabelByContent];
iOS开发之UILabel的更多相关文章
- IOS开发之UILabel动态高度设置方法
项目中有这样的需求,要显示一本书的概述,默认显示2行,点击展开按钮,显示全部,点击收回,有显示2行. 开始的时候按钮事件中,可能写的是这样一段代码: if (isExpand) { [lblBrief ...
- iOS开发之Socket通信实战--Request请求数据包编码模块
实际上在iOS很多应用开发中,大部分用的网络通信都是http/https协议,除非有特殊的需求会用到Socket网络协议进行网络数 据传输,这时候在iOS客户端就需要很好的第三方CocoaAsyncS ...
- iOS开发之UISearchBar初探
iOS开发之UISearchBar初探 UISearchBar也是iOS开发常用控件之一,点进去看看里面的属性barStyle.text.placeholder等等.但是这些属性显然不足矣满足我们的开 ...
- iOS开发之UIImage等比缩放
iOS开发之UIImage等比缩放 评论功能真不错 评论开通后,果然有很多人吐槽.谢谢大家的支持和关爱,如果有做的不到的地方,还请海涵.毕竟我一个人的力量是有限的,我会尽自己最大的努力大家准备一些干货 ...
- iOS开发之 Xcode6 添加xib文件,去掉storyboard的hello world应用
iOS开发之 Xcode6.1创建仅xib文件,无storyboard的hello world应用 由于Xcode6之后,默认创建storyboard而非xib文件,而作为初学,了解xib的加载原理 ...
- iOS开发之loadView、viewDidLoad及viewDidUnload的关系
iOS开发之loadView.viewDidLoad及viewDidUnload的关系 iOS开发之loadView.viewDidLoad及viewDidUnload的关系 标题中所说的3个方 ...
- iOS开发之info.pist文件和.pch文件
iOS开发之info.pist文件和.pch文件 如果你是iOS开发初学者,不用过多的关注项目中各个文件的作用.因为iOS开发的学习路线起点不在这里,这些文件只会给你学习带来困扰. 打开一个项目,我们 ...
- iOS开发之WKWebView简单使用
iOS开发之WKWebView简单使用 iOS开发之 WKWebVeiw使用 想用UIWebVeiw做的,但是突然想起来在iOS8中出了一个新的WKWebView,算是UIWebVeiw的升级版. ...
- iOS 开发之Block
iOS 开发之Block 一:什么是Block.Block的作用 UI开发和网络常见功能的实现回调,按钮事件的处理方法是回调方法. 1. 按钮事件 target action 机制. 它是将一 ...
随机推荐
- Android 的自定义Spinner组件实现方式
一.Android的API方式默认实现的方式 1.layout下编辑main_activity.xml <RelativeLayout xmlns:android="http://sc ...
- GridView ItemCommand
GridView ItemCommand中取某行某列的值方法,这里提供两个常用的: 一.用CommandArgument属性取值页面如下: <asp:TemplateColumn HeaderT ...
- 【学习总结】OS X , IOS , IOS SDK , XCode之间的关系
几个基本的概念 : OS X : 属于桌面PC级别(IMac,MacPro等)对应安装的操作系统 IOS : 属于移动设备级别(Iphone,Ipad等)对应安装的操作系统 XCode: 是一个IDE ...
- unity手游之聊天SDK集成与使用二
集成思路 如果是自己的小游戏的话,可以把好友等信息直接保存在亲加服务器上,通过调用api来操作. 我们游戏只使用sdk的通信功能,好友等信息保存在自己的服务器上. 用户在登陆游戏的时候,通过算法用用户 ...
- C#设计模式学习资料--外观模式
http://www.cf17.com/html/article/172.html http://blog.csdn.net/scucj/article/details/1374657 http:// ...
- SQL的集合运算符介绍
最近学习了SQL SERVER方面的知识,毕竟做Web应用,少不了跟数据库打交道.学习的来源主要是<程序员的SQL金典>这本书. 今天介绍数据库里面的集合运算符,它是指匹配集合的每一个结果 ...
- spoj 62
看了题解 自己好水 ...... #include <cstdio> #include <cstdlib> struct node { int x,y; }; node ...
- shuffle过程中的信息传递
依据Spark1.4版 Spark中的shuffle大概是这么个过程:map端把map输出写成本地文件,reduce端去读取这些文件,然后执行reduce操作. 那么,问题来了: reducer是怎么 ...
- android 设置gridView item的高度
public View getView(int position, View convertView, ViewGroup parent) { convertView = LayoutInflater ...
- java 布尔值一种赋值方法
在研读jmeter的代码时发现一个很常见的布尔值赋值方式,记录下来备忘: public static void main(String[] args) { // TODO Auto-generated ...