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 ...
随机推荐
- JAVA - 守护线程(Daemon Thread)
转载自:http://www.cnblogs.com/luochengor/archive/2011/08/11/2134818.html 在Java中有两类线程:用户线程 (User Thread) ...
- 用 AutoHotKey 随时记录所想
别被标题咋呼了,其实很简单,按下快捷键自动打开指定文本文档,自动加上当前时间日期,适合像我这种无聊的人记录生活. ;Alt+X 调出 !X:: ;获取当前日期时间并保存到剪贴板 d = @rhinoc ...
- Kubuntu中thunderbird最小化到任务栏
作为邮件客户端,如果没有办法显示在任务栏中,实在是说不过去.遗憾的是thunderbird默认真不带这个功能(因为Linux的桌面系统太混乱了?)... 当然,解决也十分简单,只要安装Firetray ...
- 微信H5支付常见问题汇总
常见问题 一.回调页面 正常流程用户支付完成后会返回至发起支付的页面,如需返回至指定页面,则可以在MWEB_URL后拼接上redirect_url参数,来指定回调页面. 如,您希望用户支付完成后跳转至 ...
- 开始第一个Android应用程序
Android应用程序建立在应用程序框架之上,所以Android编程就是面向应用程序框架API编程---与编写普通的Java SE没有太大区别,只是增加了一些API. 1.使用eclipse开发第一个 ...
- android textview 显示一行,且超出自动截断,显示"..."
android textview 显示一行,且超出自动截断,显示"..." <TextView android:layout_width="wrap_content ...
- c# 调用外包程序 等待处理完成结果
string root = @"J:\yaoqianshu"; string pythonPath = "解压缩拷贝启动动画测试(新).py"; string ...
- Bitmap Images and Image Masks
[Bitmap Images and Image Masks] Bitmap images and image masks are like any drawing primitive in Quar ...
- Google AdWords 广告排名首选项
排名首选项目标:了解 AdWords 广告客户可怎样为其广告设置排名首选项. 排名首选项简介 通过排名首选项,用户可以告诉 Google 他们希望其广告在给定网页上的所有 AdWords 广告中所处的 ...
- win2003 ent 64 + mssql ent 64
1.打win2003补丁(取消IE8.0)2.msconfig->boot.int->高级中,将内核改成83.将cd1,cd2,高到Servers,Tools目录中,并保证Servers, ...