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 ...
随机推荐
- leetcode 20 Valid Parentheses 有效的括号
描述: 给定一些列括号,判断其有效性,即左括号有对应的有括号,括号种类只为小,中,大括号. 解决: 用栈. bool isValid(string s) { stack<char> st; ...
- C++中public、protected以及private的使用
相比C语言,C++中通过class/struct来定义既包含数据,又包含行为的结构,从而支持了“对象”.现实世界中,一个人(一个对象)通常 拥有一些资产(数据),并且掌握某些技能(行为),并且这些资产 ...
- Visual Studio 2013 osg
1>------ Rebuild All started: Project: ZERO_CHECK, Configuration: Debug x64 ------1> Checking ...
- android studio打包apk
转载:http://chenfeicqq.iteye.com/blog/1889160 1)Android Studio菜单Build->Generate Signed APK (2) ...
- cakephp获取最后一条sql语句
.在app\config\core.php中设置Configure::write(); .页面上追加如下代码: $dbo = ConnectionManager::getDataSource('def ...
- struts2 action result type类型
struts2 action result type类型 1.chain:用来处理Action链,被跳转的action中仍能获取上个页面的值,如request信息. com.opensymphony. ...
- 不要怂,就是GAN (生成式对抗网络) (五):无约束条件的 GAN 代码与网络的 Graph
GAN 这个领域发展太快,日新月异,各种 GAN 层出不穷,前几天看到一篇关于 Wasserstein GAN 的文章,讲的很好,在此把它分享出来一起学习:https://zhuanlan.zhihu ...
- FPGA时序约束和timequest timing analyzer
FPGA时序约束 时钟约束 #************************************************************** # Create Clock #****** ...
- 测试用数据库表设计和SessionFactory
本篇为struts-2.5.2和spring-3.2.0以及hibernate-4.2.21的整合开篇. 一.测试的数据库表. 用户.角色和权限关系表.数据库是Mysql5.6.为了考虑到一些特殊数据 ...
- CentOS 6.6 MySQL 8.0详细安装步骤
1.备份服务器上MySQL数据库 [root@localhost ] # mysqldump -h localhost -u root -proot --databases Surpass --rou ...