在手持式行动装置中,被限制住的显示屏幕空间,使得我们必须花费更多的时间与功夫来处理文字内容的安排,舒适的行距、间距以及字号,这些需要不断调整的细节,会大大影响内容的阅读性与程序的使用性。

在简单介绍 ios 中如何处理变动的内容的方法后,这篇文章也将简单介绍 ios 针对于较长的文字内容,支持哪些可以快速调整的属性,让设计师在思考与规划版面时,能够事先可虑进去,减少实作时额外沟通的成本。

在 iOS 6 之后,iOS 的文字显示组件中提供了一个可以调整文字细节属性的NSAttributedString 类别,可以针对文字内容的全部与部份区域改变显示的方式,可套用在组件 UILabel 与 UITextView,以下我们介绍其中常用的属性:

段落排版

段落排版的属性(NSParagraphStyleAttributeName)是 NSAttributedString中最重要也是具有文章显示需求的服务所一定会用到的功能,可调整的细节有:

1. 对齐

向左对齐、置中对齐、向右对齐是最基本的对齐方式,除此之外还支持两端对齐(NSTextAlignmentJustified)以及根据显示的文字特性对齐(NSTextAlignmentNatural)。

2. 段落开头缩排

可以透过 firstLineHeadIndent 指定段落开始的缩排像素。

3. 缩排

透过 headIndent 可调整全部文字的缩排距离,可当作左边 padding 使用。

而透过 tailIndent 可调整文字尾端的缩排距离。需要注意的是,这里指定的值可以当作文字显示的宽、而也可当作右边 padding 使用,依据输入的正负值而定:

4. 行距

想要调整行距,可以透过搭配使用 lineHeightMultiple 更改行距倍数:

或是 lineSpacing 来增加行距:

而针对不同的字型与字号,我们可以透过指定最大与最小行距(maximumLineHeight 与 minimumLineHeight)来避免过高或过窄的状况发生。

5. 段落行距
而若是文章内容有分段落的话,也可以透过指定段落结尾距离(paragraphSpacing)以及段落开头距离(paragraphSpacingBefore):

字符间距

想要拉开字符间的距离的话,则可以指定 NSKernAttributeName 属性来调整:

字型

如果需要在部分文字中替换不同的字型与字号,则可以透过NSFontAttributeName 属性来更改部分区域的文字:

颜色与视觉风格

除了文本块本身的背景颜色,也可以透过 NSBackgroundColorAttributeName 以及NSForegroundColorAttributeName 个别修改文字部分的背景以及文字颜色(如强调段落开头的第一个字):

而个别修改阴影与文字外框也同样有支持,可使用 NSStrokeColorAttributeName、NSStrokeWidthAttributeName以及 NSShadowAttributeName 达成:

底线与删除线

若需要底线与删除线,可以指定 NSUnderlineStyleAttributeName 与NSStrikethroughStyleAttributeName:

搭配这些属性,我们就可以快速又简单的实作一些精美的段落显示,设计师在充分了解了在文字排版你拥有哪些可利用的武器后,在设计时间就可以更精准的规划策略,减少设计与实作之间的差距。

转载于:https://www.cnblogs.com/xuanyufeng/p/3757190.html

iOS开发之段落文字排版的属性与细节相关推荐

  1. php中的文字排版问题,CSS布局中常用的文字排版相关属性详解

    本篇文章给大家带来的内容是关于CSS布局中常用的文字排版相关属性详解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. CSS布局中常用的文字排版相关属性详解 一.设定文字字体.颜色.大 ...

  2. linux 终端 渐变色,iOS开发——UI篇文字渐变效果:图层中的mask属性

    本次文章,主要讲述的是图层中的mask属性,利用它,可以做出文字渐变效果! 一.文字渐变效果: 二.文字渐变实现思路: 1.创建一个颜色渐变层,渐变图层跟文字控件一样大. 2.用文字图层裁剪渐变层,只 ...

  3. css网页布局中文字排版的属性和用法

    前段时间,学习了几个大的网站的图文混排的方法.今天总结下, css网页布局中文字排版的相关属性以及用法 .包括:设定字体.颜色.大小.段落空白,首字下沉.首行缩进.中文字的截断.固定宽度词内折行(wo ...

  4. iOS开发之弧形文字

    项目需要一个环形进度条,所以需要弧形的文字显示进度,网上找了一圈没有什么适合的,所以自己封装了一个简单的弧形文字. 效果图如下: 首先我们需要一个结构体来计算出每个glyph的绘制点和偏移角度: ty ...

  5. iOS开发UI 篇—CAlayer层的属性

    一.position和anchorPoint 1.简单介绍 CALayer有2个非常重要的属性:position和anchorPoint @property CGPoint position; 用来设 ...

  6. [分享]iOS开发-UI篇:CAlayer层的属性

    iOS开发UI篇-CAlayer层的属性 一.position和anchorPoint 1.简单介绍 CALayer有2个非常重要的属性:position和anchorPoint @property ...

  7. 文顶顶iOS开发博客链接整理及部分项目源代码下载

    网上的iOS开发的教程很多,但是像cnblogs博主文顶顶的博客这样内容图文并茂,代码齐全,示例经典,原理也有阐述,覆盖面宽广,自成系统的系列教程却很难找.如果你是初学者,在学习了斯坦福iOS7公开课 ...

  8. ios开发text kit_第9章 iOS 7中文字排版和渲染引擎——Text Kit

    第 9 章 iOS 7中文字排版和渲染引擎--Text Kit 在iOS 7之前,应用中字体的大小用户是不能设置的,而且开发人员要想实现多种样式的文字排版是件非常麻烦的事情.在iOS 7之后,这些问题 ...

  9. iOS开发 UILabel 详细介绍(属性+富文本)

    UILabel是iOS开发中最常用的一种标签了,在开发过程中,会用到各种个样的标签属性,一段文字中变颜色或者字体的样式等(这些都是富文本中的内容,用于美化文字),下面就让我来给大家做一个详细的UILa ...

最新文章

  1. linux怎么停止ssh服务,Linux 故障排除:关闭 SSH 会话后如何保存工作状态?
  2. 深度学习之利用TensorFlow实现简单的卷积神经网络(MNIST数据集)
  3. Android Studio 配置
  4. Python中通过PyPDF2实现PDF加密
  5. Proof-of-Stake (POS) outperforms Bitcoin’s Proof-of-Work (POW)
  6. OS / 5 种 IO 模型
  7. [转贴]电视和显示器的相关语言
  8. 微软开源微服务运行时Dapr,赋能云原生应用开发
  9. JS收集:遍历CHECKBOX
  10. 5G产业最新投资机会,25页PPT
  11. 中国移动高同庆:积极推动6G形成全球统一标准体系,避免产业割裂
  12. PHP报不存在图像文件,使用TP3.2.3图片文件上传显示不存在图像文件
  13. 微信小程序之自定义toast弹窗
  14. MIT 6.828 main.c文件分析
  15. mysql se_常见的MySQL命令
  16. matlab 电力系统分析 毕设,毕设开题报告_-基于matlab中电力系统模块集(psb的电力系统仿真研究.doc...
  17. 图神经网络入门:GCN论文+源码超级详细注释讲解!
  18. 腾讯产品总监曹菲:如何克服职业焦虑
  19. Matplotlib颜色对照表
  20. 大学计算机音乐一起学,和学生一起学音乐

热门文章

  1. Java执行jar总结
  2. Codeforces Round #757 (Div. 2)ABCD1
  3. 【PAT乙】1069 微博转发抽奖 (20分) set
  4. 温度补偿计算公式_管道布置设计原则、基本要求与补偿器的选择
  5. pandas frame 删除一行_Pandas如何处理大规模数据?
  6. HTML5 响应式网页设计之页面美化(三.弹性布局)
  7. HTML5 响应式网页设计之页面美化(二.媒体查询)
  8. python 随机请求头_为了爬虫换个头,我用python实现三种随机请求头方式!
  9. jsp input输入实时校验长度并提示_HotCRC未公开发布的高版本穷举输入规则(V3.02)...
  10. 设系统中有三种类型的资源(A,B,C)的五个进程(P1,P2,P3,P4,P5)。A资源的数量为17,B资源的数量为5,C资源的数量为20。在T0时刻系统状态如表所示。