iOS -- UILabel的常见使用
UILabel是iOS开发经常用到的一个控件,主要用于显示文字。下面记录一些常用的UIlabel的使用。
先定义:UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 0, 0)];
1.通过调整字体大小,自适应label的宽度
label.adjustsFontSizeToFitWidth = YES;
2.改变Label中选中字段的颜色
(0)先定义Label:
UILabel* noteLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 100, 200, 100)];
(1)首先确定要改变颜色字段的位置:
NSRange colorRange = NSMakeRange(第一个字的位置, 字段长度);
(2)使用 NSMutableAttributedString(带属性的字符串)。
初始化方法:
NSMutableAttributedString *noteStr = [[NSMutableAttributedStringalloc]initWithString:@"今天天气不错呀"];
添加字符串属性:
[noteStr addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:colorRange];
(3)将带属性字符串设置到label
[noteLabel setAttributedText:noteStr] ;
- (void)viewDidLoad {
[super viewDidLoad];
UILabel* noteLabel = [[UILabel alloc] initWithFrame:CGRectMake(, , , )];
[self changeLabelColor:noteLabel withAllString:@"我是大明星的帅哥" withAimString:@"大明星"];
[self.view addSubview:noteLabel];
}
//调用该方法就能实现选中字段颜色改变
-(void)changeLabelColor:(UILabel*)noteLabel withAllString:(NSString*)allStr withAimString:(NSString*)aimStr
{
if (aimStr.length > allStr.length || ![allStr containsString:aimStr]) {
return;
}
noteLabel.textColor = [UIColor darkGrayColor];
NSMutableAttributedString *noteStr = [[NSMutableAttributedString alloc] initWithString:allStr];
NSRange redRange = NSMakeRange([[noteStr string] rangeOfString:aimStr].location, aimStr.length);
[noteStr addAttribute:NSForegroundColorAttributeName value:[UIColor colorWithRed:0.11 green:0.58 blue:0.81 alpha:] range:redRange];
[noteLabel setAttributedText:noteStr] ;
[noteLabel sizeToFit];
}
3. label的 高度自适应
(1)通过label的 - (CGSize)sizeThatFits:(CGSize)size; 方法拿到 size,重设frame
UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(, , , )];
label.numberOfLines = ;
label.backgroundColor = [UIColor redColor] ; label.lineBreakMode = NSLineBreakByWordWrapping; label.font = [UIFont systemFontOfSize:]; label.text = @"本店于十一期间特推出一系列优惠,限时限量敬请选购!沙发:钻石品质,首领风范!床垫:华贵典雅,彰显时尚!尊贵而不失奢华,典雅却不失自然!温馨和浪漫的生活,我们与你一同创造!"; CGSize size = [label sizeThatFits:CGSizeMake(label.frame.size.width, MAXFLOAT)]; label.frame =CGRectMake(, , , size.height); [self.view addSubview:label];
(2)通过自动换行,让系统自动设置label高度
UILabel *label1 = [[UILabel alloc] initWithFrame:CGRectMake(, , , )];
// 设置文本内容
label1.text = @"本店于十一期间特推出一系列优惠,限时限量敬请选购!沙发:钻石品质,首领风范!床垫:华贵典雅,彰显时尚!尊贵而不失奢华,典雅却不失自然!温馨和浪漫的生活,我们与你一同创造!";
label1.font = [UIFont systemFontOfSize:]; // 0代表不限制行数
[label1 setNumberOfLines:];
// 因为行数不限制,所以这里在宽度不变的基础上(实际宽度会略为缩小),高度会自动扩充
[label1 sizeToFit];
label1.backgroundColor = [UIColor redColor] ;
[self.view addSubview:label1];
iOS -- UILabel的常见使用的更多相关文章
- iOS UILabel UITextView UIButton 等等显示文本行间距
iOS UILabel UITextView UIButton 等等显示文本行间距都用如下方法 NSMutableParagraphStyle *paragraphStyle = [[NSMutab ...
- iOS项目中常见的文件
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,bi ...
- iOS UILabel 文字 置顶/置底 实现
iOS UILabel控件默认文字位置是居中的,如图所示: 但是我们经常碰到这样的需求,希望文字向上置顶,或者向下置底,但是很遗憾,iOS API中并没有提供相应的属性和方法,需要我们手动设置. 利用 ...
- iOS开发中常见的一些异常
iOS开发中常见的异常包括以下几种NSInvalidArgumentExceptionNSRangeExceptionNSGenericExceptionNSInternallnconsistency ...
- iOS 平台上常见的安装包有三种,deb、ipa 和 pxl
前言:目前 iOS 平台上常见的安装包有三种,deb.ipa 和 pxl. 其中 deb 格式是 Debian 系统(包含 Debian 和 Ubuntu )专属安装包格式,配合 APT 软件管理系统 ...
- iOS开发系列-常见离线存储方式
概述 在很多社交App手机在手机没有网络时,重新启动应用,依然能否展示上次访问的数据,提高用户体验,这个就是离线数据存储的运用场景.在iOS开发中常见的离线存储技术有Plist存储.个人偏好存储.解归 ...
- iOS当中一些常见的面试题
转自各方面..... 一.前言部分 文中的问题多收集整理自网络,不保证100%准确,还望斟酌采纳. 1.iOS9有哪些新特性? 答案: 1)改进了 Siri 基于日期.位置和相簿名称来搜索个人照片和视 ...
- iOS面试中常见的算法题目
一.前言 这里是在iOS求职中自己遇到的算法题,希望对大家有所帮助.不定期更新.如果大家想在线运行代码调试,可以将代码拷贝到这里.然后进行调试.下面就是常见的算法题目. 二.正文 1.就n的阶乘.(这 ...
- IOS UILabel 根据内容自适应高度
iOS Label 自适应高度 适配iOS7以后的版本 更多 self.contentLabelView = [[UILabel alloc] init]; self.contentLabelVie ...
随机推荐
- 【BZOJ2716】天使玩偶【kd树】
这个题要求kd树支持两个操作. 1.插入一个新的点. 2.查询某个点最近曼哈顿距离. 注意查询曼哈顿距离和查询欧几里得距离,是有区别的.(估价函数不同). #include <cstdio> ...
- Ice_cream’s world II(最小树形图,加虚点)
Ice_cream’s world II http://acm.hdu.edu.cn/showproblem.php?pid=2121 Time Limit: 3000/1000 MS (Java/O ...
- ios 7.1企业证书无线安装
ios升级到7.1时,企业证书http服务器发布无线安装不能使用,需要使用https服务器. 测试了几种方式 1.测试时自签名https证书测试无效,提示不能连接到服务器 2.使用dropbox共享连 ...
- 读写大“二进制”文件,不必申请很大内存(fopen,fread,fwrite,fclose)
<?php /** * 读写大二进制文件,不必申请很大内存 * 只有读取到内容才创建文件 * 保证目录可写 * * @param string $srcPath 源文件路径 * @param s ...
- C语言中的序列点和副作用
参考: http://www.2cto.com/kf/201210/161225.html
- Mybatis 实用篇(四)返回值类型
Mybatis 实用篇(四)返回值类型 一.返回 List.Map List<User> getUsers(); <select id="getUsers" re ...
- mongo学习-TTL索引 过期数据
在mongo中我们可以设置文档的过期时间,超过时间,文档会自动删除.(2.x版本中 固定结合也支持,但是到了3.x中 固定集合这个索引不好用) 用法: 1.创建一个db:db.createColle ...
- nginx 集群介绍
nginx 集群介绍 完成一次请求的步骤 1)用户发起请求 2)服务器接受请求 3)服务器处理请求(压力最大) 4)服务器响应请求 缺点:单点故障 单台服务器资源有限 单台服务器处理耗时长 ·1)部署 ...
- JMS规范简介
一.JMS规范 Java消息服务定义: Java消息服务(Java Message Service)即JMS,是一个Java平台中面向消息中间件的API,用于在两个应用程序之间或分布式系统中发送/接受 ...
- UVa 10570 Meeting with Aliens (暴力)
题意:给定一个排列,每次可交换两个数,用最少的次数把它变成一个1~n的环状排列. 析:暴力题.很容易想到,把所有的情况都算一下,然后再选出次数最少的那一个,也就是说,我们把所有的可能的形成环状排列全算 ...