文档章节

玩转UILabel

杭城小刘
 杭城小刘
发布于 2017/04/28 13:47
字数 946
阅读 29
收藏 0

###UILabel-富文本###

1 NSFontAttributeName(字体) 该属性所对应的值是一个 UIFont 对象。该属性用于改变一段文本的字体。如果不指定该属性,则默认为12-point Helvetica(Neue)。

2 NSParagraphStyleAttributeName(段落) 该属性所对应的值是一个 NSParagraphStyle 对象。该属性在一段文本上应用多个属性。如果不指定该属性, 则默认为 NSParagraphStyle 的defaultParagraphStyle 方法返回的默认段落属性。

3 NSForegroundColorAttributeName(字体颜色) 该属性所对应的值是一个 UIColor 对象。该属性用于指定一段文本的字体颜色。如果不指定该属性,则默认为黑色。

4 NSBackgroundColorAttributeName(字体背景色) 该属性所对应的值是一个 UIColor 对象。该属性用于指定一段文本的背景颜色。如果不指定该属性,则默认无背景色。

5 NSLigatureAttributeName(连字符) 该属性所对应的值是一个 NSNumber 对象(整数)。连体字符是指某些连在一起的字符, 它们采用单个的图元符号。0 表示没有连体字符。1 表示使用默认的连体字符。2表示使用所有连体符号。默认值为 1(注意,iOS 不支持值为 2)。

6 NSKernAttributeName(字间距) 该属性所对应的值是一个 NSNumber 对象(整数)。字母紧排指定了用于调整字距的像素点数。字母紧排的效果依赖于字体。值为 0 表示不使用字母紧排。默认值为0。

7 NSStrikethroughStyleAttributeName(删除线) 该属性所对应的值是一个 NSNumber 对象(整数)。该值指定是否在文字上加上删除线,该值参考“Underline Style Attributes”。默认值是NSUnderlineStyleNone。

8 NSUnderlineStyleAttributeName(下划线) 该属性所对应的值是一个 NSNumber 对象(整数)。该值指定是否在文字上加上下划线,该值参考“Underline Style Attributes”。默认值是NSUnderlineStyleNone。

9 NSStrokeColorAttributeName(边线颜色) 该属性所对应的值是一个 UIColor 对象。如果该属性不指定(默认),则等同于 NSForegroundColorAttributeName。 否则,指定为删除线或下划线颜色。

10 NSStrokeWidthAttributeName(边线宽度) 该属性所对应的值是一个 NSNumber 对象(小数)。该值改变描边宽度(相对于字体size 的百分比)。默认为 0,即不改变。正数只改变描边宽度。 负数同时改变文字的描边和填充宽度。例如,对于常见的空心字,这个值通常为3.0。

11 NSShadowAttributeName(阴影) 该属性所对应的值是一个 NSShadow 对象。默认为 nil。

12 NSVerticalGlyphFormAttributeName(横竖排版) 该属性所对应的值是一个 NSNumber 对象(整数)。0 表示横排文本。1 表示竖排文本。在 iOS 中,总是使用横排文本,0 以外的值都未定义。 直接上代码

- (void)viewDidLoad {
[super viewDidLoad];
[self.view addSubview:self.label];
}


#pragma mark - lazy load
-(UILabel *)label{
if (!_label) {
_label = [[UILabel alloc] initWithFrame:CGRectMake(0, 100,[UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height - 100)];
_label.backgroundColor = [UIColor grayColor];
NSMutableAttributedString *attrbuitedStr = [[NSMutableAttributedString alloc] initWithString:@"人生若只如初见,何事秋风悲画扇。\n等闲变却故人心,却道故人心易变。\n骊山语罢清宵半,泪雨霖铃终不怨。\n何如薄幸锦衣郎,比翼连枝当日愿。"];
//前7个字为红色
[attrbuitedStr addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(0, 7)];
//前7个字加下划线
[attrbuitedStr addAttribute:NSUnderlineStyleAttributeName value:[NSNumber numberWithInt:NSUnderlineStyleSingle] range:NSMakeRange(0, 7)];
//前7个字字体大小为30px
[attrbuitedStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:30] range:NSMakeRange(0, 7)];
//设置第二行前半句文本背景颜色为黄色
[attrbuitedStr addAttribute:NSBackgroundColorAttributeName value:[UIColor yellowColor] range:NSMakeRange(16, 8)];
//设置第二行前半句文本间距为10
[attrbuitedStr addAttribute:NSKernAttributeName value:@10 range:NSMakeRange(16, 8)];
//设置边框颜色
[attrbuitedStr addAttribute:NSStrokeColorAttributeName value:[UIColor greenColor] range:NSMakeRange(16, 8)];
//设置边框宽度
[attrbuitedStr addAttribute:NSStrokeWidthAttributeName value:[NSNumber numberWithInt:1] range:NSMakeRange(16, 8)];
_label.attributedText = attrbuitedStr;
_label.textAlignment = NSTextAlignmentCenter;
_label.numberOfLines = 0;
[_label sizeToFit];
}
return _label;
}

© 著作权归作者所有

共有 人打赏支持
杭城小刘
粉丝 14
博文 109
码字总数 54955
作品 0
杭州
iOS工程师
【转载】NGUI UILabel 文字破碎

项目使用NGUI,最近碰到 Loading界面的提示文字破碎的Bug。 参考了以下文章 转自http://blog.csdn.net/huutu http://www.liveslives.com 下面先来了解一下为什么会出现这种问题。 需要了解的...

linda012518
05/09
0
0
UIKit 手写控件转换大小写

// // ViewController.m // 手写转换大小写 // // Created by 非凡程序员 on 15/11/11. // Copyright (c) 2015年 Querida. All rights reserved. // #import "ViewController.h" @interface......

温暖c
2015/11/11
0
0
ios中实现对UItextField,UITextView等输入框的字数限制

转: 如何实现对UITextField ,UITextView等输入框的 字数限制 1. 如何实现对UITextField ,UITextView等输入框的 字数限制 (1)首先,肯定要 让controller 实现 UITextFieldDelegate (针对...

meilidashijie
2013/01/08
0
0
UIImageView与UIButton

应用场合 UIImageView主要用在只显示图片,没有点击事件的情况并且处理图片更加专业,动画例子: NSMutableArray *images = [NSMutableArray array]; for (int i=0; i<sum; i++) { NSBundle ...

天边那束阳光
2014/10/01
0
0
用基本控件简单地仿QQ登录界面

// Created by 妖精的尾巴 on 15-8-14. // Copyright (c) 2015年 妖精的尾巴. All rights reserved. // #import "ViewController.h" @interface ViewController () { UILabel backgroundLab......

不孤独的美食家
2015/08/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

laravel 微信支付

1.composer加载laravel微信支付第三方文件 composer require "overtrue/laravel-wechat:~4.0" composer require simplesoftwareio/simple-qrcode 1.3.* //composer生成二维码文件 2.改confi......

vio小黑
34分钟前
1
0
学习设计模式——抽象工厂模式

1. 认识抽象工厂模式 1. 定义:提供一个创建一系列相关或互相依赖的对象的接口,而无需指定它们具体的类。 2. 组成结构: AbstractFactory:抽象工厂类,定义创建一系列对象的操作接口 Fact...

江左煤郎
34分钟前
2
0
ES6的let块级作用域和变量不可提升导致一个比较容易出现的错误

今天在写NodeJS代码的时候出现一个变量一直提示未定义,简化后的代码如下: let param = 1;{ console.log(param);} 就在想,不至于啊。不是继承上层的声明吗? 继续看下去,发现原来...

MKjy
41分钟前
2
0
50:nginx访问日记|日记切割|静态文件不记录日记和过期时间

1、nginx访问日记: 日记格式:在主配置文件nginx.conf里搜索log_format; [root@localhost_001 conf]# vim nginx.conflog_format combined_realip '$remote_addr $http_x_forwarded_for ......

芬野de博客
44分钟前
1
0
前后端正常交互的流程

1、评审阶段:产品召集前后端进行需求评审,前后端各自捋清楚自己的业务量以及联调之间工作量,从而进行开发时间评估。 2、开发准备阶段:前后端一起商量需求中需要联调的部分,进行接口的口...

Jack088
44分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部