文档章节

iOS开发 之 设置多种文字颜色/背景色/文字下划线/行间距

琳小兮
 琳小兮
发布于 2015/06/23 08:52
字数 665
阅读 2517
收藏 5
点赞 1
评论 0
iOS
  • NSMutableAttributedString常见的属性:

  • NSFontAttributeName 字体

  • NSForegroundColorAttributeName 文字颜色

  • NSBackgroundColorAttributeName 背景颜色

  • NSStrikethroughStyleAttributeName 删除线(默认是0,无删除线)

  • NSUnderlineStyleAttributeName 下划线(默认是0,无下划线)

  • NSParagraphStyleAttributeName 设置段落/间距

  • 使用方法:

  • 为某一范围内文字设置多个属性

  • - (void)setAttributes:(NSDictionary *)attrs range:(NSRange)range;

  • 为某一范围内文字添加某个属性

  • - (void)addAttribute:(NSString *)name value:(id)value range:(NSRange)range;

  • 为某一范围内文字添加多个属性

  • - (void)addAttributes:(NSDictionary *)attrs range:(NSRange)range;

    UILabel * label = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 300, 100)];
    label.numberOfLines = 0;
    label.font = [UIFont systemFontOfSize:18];
        
    NSMutableAttributedString * str = [[NSMutableAttributedString alloc]initWithString:@"你说你最爱丁香花,因为你的名字就是它,多么忧郁的花,多愁善感的人啊!"];
    
    //设置文字颜色以及字体、删除线
    NSDictionary * dict = @{
                            NSForegroundColorAttributeName:[UIColor redColor],
                            NSFontAttributeName:[UIFont systemFontOfSize:13],
                            NSStrikethroughStyleAttributeName:@"1"};
    
    //从下标0开始,长度为18的内容设置多个属性,dict里面写的就是设置的属性
    [str setAttributes:dict range:NSMakeRange(0, 18)];
    
    //设置背景颜色以及下划线
    NSDictionary * dict1 = @{
                             NSBackgroundColorAttributeName:[UIColor yellowColor],
                             NSUnderlineStyleAttributeName:@"1"};
    
    //从下标14开始,长度为6的内容添加多个属性,dict1里面写的就是添加的属性
    [str addAttributes:dict1 range:NSMakeRange(14, 6)];
    
    //从下标21开始,长度为2的内容添加字体属性,设置其字号为22
    [str addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:22] range:NSMakeRange(21, 2)];
    
    label.attributedText = str;
    [self.view addSubview:label];
    UITextView *titleText = [[UITextView alloc] initWithFrame:CGRectMake(10, 200, 300, 300)];
    titleText.text = @"说不上为什么,我变得很主动。若爱上一个人,什么都会值得去做。我想大声宣布,对你依依不舍。连隔壁邻居都猜到我现在的感受,河边的风在吹着头发飘动,牵着你的手一阵莫名感动。我想带你回我的外婆家,一起看着日落,一直到我们都睡着。我想就这样牵着你的手不放开,爱能不能够永远单纯没有悲哀,我想带你骑单车,我想和你看棒球,想这样没担忧唱着歌一直走!";
    titleText.font = [UIFont systemFontOfSize:12];
    
    NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
    paragraphStyle.lineSpacing = 10;//行间距
    
    //设置字号和行间距
    NSDictionary *ats = @{
                          NSFontAttributeName : [UIFont systemFontOfSize:16.0f],
                          NSParagraphStyleAttributeName : paragraphStyle,
                          };
    
    titleText.attributedText = [[NSAttributedString alloc] initWithString:titleText.text attributes:ats];//设置行间距
    
    [self.view addSubview:titleText];

如果是给Label设置的行间距,设置完以后,获取label的高度方法:

 //获取设置文本间距以后的高度,210是控件的宽度,需要写一致,不然获取的高度有问题
   CGRect fram = [dataLabel.attributedText boundingRectWithSize:CGSizeMake(210, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin context:nil];
   NSLog(@"-----高度是%f",fram.size.height);


© 著作权归作者所有

共有 人打赏支持
琳小兮
粉丝 30
博文 36
码字总数 19544
作品 0
襄阳
程序员
定制iOS 7中的导航栏和状态栏

由于种种原因,申请了一个开源中国的帐号,也许会由于我的不耐心,不会亲自去一步步的写博文,但准备把自己看到的好的,都转载过来,就当时资源的存储,也算是一种推广吧。 iOS 7 教程:定制...

谁家的阿毛
2013/11/21
0
0
再看知名应用背后的第三方开源项目

知名应用程序的设计和技术一直都是开发者需要学习的,同样这些应用所使用的开源框架也是不可忽视的一部分。此前《iOS第三方开源库的吐槽和备忘》中作者ibireme列举了国内多款知名应用所使用的...

hejunbinlan
2015/08/18
0
0
iOS 字符属性NSAttributedString描述

/* 字符属性 字符属性可以应用于 attributed string 的文本中。 NSString *const NSFontAttributeName;(字体) NSString *const NSParagraphStyleAttributeName;(段落) NSString *const NSFor......

沉恋
2015/04/03
0
0
iOS开发-登录界面开发(1)Text控件的使用-Swfit4.1_Xcode9.3.1

实现效果:   1.打开app的效果图:   2.输入vip号码后的效果图 1.让我们从零开始,现在AppStore搜索xcode并安装 2.打开xcode,点击"Creat a new Xcode project",点击"Single View App"...

iwanghang
05/30
0
0
iOS--NSAttributedString超全属性详解及应用(富文本、图文混排)

ios项目中经常需要显示一些带有特殊样式的文本,比如说带有下划线、删除线、斜体、空心字体、背景色、阴影以及图文混排(一种文字中夹杂图片的显示效果)。通常想要实现这些效果要使用到iOS...

遇见0620
2017/10/26
0
0
IOS7 Tech Talk总结

导航 一、kick off A、苹果推出了iOS7,他们希望开发者打造的apps能够更具有吸引力,首先是第一印象要好,App Store的截图制作就要好。 在开发软件的时候,应该注重字体的颜色和图像,要用透...

gaoios
2014/01/13
0
0
文字如何实现完美UI?文本排版设计告诉你

一部手机,电量充足,网络通畅,就足以让我们打发一天的时光,尽情沉浸在手机时代的缤纷世界里。这个信息资源无穷尽的手机网络世界,是设计师和开发者们在不停的探索中一路一步精心打造。如何...

jongde
2017/10/23
0
1
ios上 更改 状态栏(UIStatusBar)的颜色,你值得一看、收藏

作者:shede333 主页:http://my.oschina.net/shede333 && http://blog.sina.com.cn/u/1509658847 版权声明:原创文章,版权声明:自由转载-非商用-非衍生-保持署名 [Creative Commons BY-N...

shede333
2014/08/20
0
15
小程序学习:第一波初识小程序-官方案例

闲来无事研究研究小程序,毕竟现在辣么火的一个产品,但是作为前端盲的我不得不一步一步的跟随去学习,没有大神的那种快速入口,跟着官方文档按部就班的走吧,本想在小程序中针对每一个字段进行注...

LevelCoder
06/07
0
0
艾润物联/vehicle-keyboard-android

停车王车牌号码专用键盘 VehicleKeyboard - Android 是停车王品牌的各端产品线的基础组件,专为提高中国车牌号码输入速度而定制开发的专用键盘组件,包括以下三个项目: Android项目,为And...

艾润物联
04/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

expect脚本同步文件、expect脚本指定host和要同步的文件、构建文件分发系统

expect脚本同步文件 更改权限 执行脚本 查看执行结果 expect eof需要加上,作用是等脚本命令执行完再进行退出 expect脚本指定host和要同步的文件 更改权限,执行脚本 构建文件分发系统 需求背...

Zhouliang6
26分钟前
1
0
Hive应用:外部分区表

Hive应用:外部分区表 介绍 Hive可以创建外部分区表。创建表的时候,分区要在建表语句中体现。建完之后,你不会在表中看到数据,需要进行分区添加,使用alter语句进行添加。然后数据才会显示...

星汉
36分钟前
0
0
点击Enter登录

1. 效果 2. 实现过程(记得引入jq文件) //6.回车事件 登录 $(function() { document.onkeydown = function(event) { var e = event || window.event || arguments.callee.caller.arguments......

Lucky_Me
42分钟前
1
0
点击菜单内容切换

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .menu{ height: 38px; background-color: #eeeeee; line-height: 38px; } .mao{ ......

南桥北木
今天
1
0
OSChina 周六乱弹 —— 妹子和游戏哪个更好玩

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @andonny :分享唐朝乐队的单曲《国际歌》 《国际歌》- 唐朝乐队 手机党少年们想听歌,请使劲儿戳(这里) @举个栗子- :日常祈雨 邪恶的大祭...

小小编辑
今天
508
6
流利阅读笔记32-20180721待学习

“人工智能”造假:只有人工,没有智能 Lala 2018-07-21 1.今日导读 当今社会,擅长单个方面的人工智能已经盛行,手机借助 AI 智慧防抖技术帮助大家拍出清晰照片,谷歌研发的 AI 助手将可以帮...

aibinxiao
今天
7
0
我的成长记录(一)

今天突然精神抖擞,在我的博客下新开一项分类>成长记录,专门记录每隔一段时间我的一点感悟吧。因为今天才专门花时间新开这样一个分类,所以以前有过的一些感悟没有记录下来,现在已经想不起...

dtqq
今天
1
0
机器学习管理平台 MLFlow

最近工作很忙,博客一直都没有更新。抽时间给大家介绍一下Databrick开源的机器学习管理平台-MLFlow。 谈起Databrick,相信即使是不熟悉机器学习和大数据的工程湿们也都有所了解,它由Spark的...

naughty
今天
13
0
idea tomcat 远程调试

tomcat 配置 编辑文件${tomcat_home}/bin/catalina.sh,在文件开头添加如下代码。    CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7829" Idea端配......

qwfys
今天
2
0
遍历目录下的文件每250M打包一个文件

#!/usr/bin/env python # -*- utf-8 -*- # @Time : 2018/7/20 0020 下午 10:16 # @Author : 陈元 # @Email : abcmeabc@163.com # @file : tarFile.py import os import tarfile import thr......

寻爱的小草
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部