`
dcj3sjt126com
  • 浏览: 1880681 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

iOS 段落文字排版的属性与细节

    博客分类:
  • IOS
 
阅读更多

转自 http://shijue.me/show_text/521c396a8ddf876566000007

 

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

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

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

段落排版

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

1. 对齐

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

iOS 段落文字排版的属性与细节


2. 段落开头缩排

 

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

iOS 段落文字排版的属性与细节


3. 缩排

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

iOS 段落文字排版的属性与细节


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

iOS 段落文字排版的属性与细节


4. 行距

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

iOS 段落文字排版的属性与细节


或是 lineSpacing 来增加行距:

iOS 段落文字排版的属性与细节


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

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

iOS 段落文字排版的属性与细节


字符间距

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

iOS 段落文字排版的属性与细节


字型

 

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

iOS 段落文字排版的属性与细节


颜色与视觉风格

 

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

iOS 段落文字排版的属性与细节


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

iOS 段落文字排版的属性与细节


底线与删除线

 

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

iOS 段落文字排版的属性与细节


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

分享到:
评论

相关推荐

    iOS段落排版

    iOS段落排版~整合多種排版方式供參考NSTextAlignmentJustified, firstLineHeadIndent, headIndent, lineHeightMultiple, NSFontAttributeName,有圖解

    ios文字处理软件

    此外,iOS的文字处理软件通常还具有智能化的功能,如自动格式化和排版。它们可以根据原文的布局,尽可能地保留段落、标题等格式,使得转换后的文字更易于阅读。还有一些高级特性,如表格识别、公式识别,甚至对手写...

    IOS CoreText.framework --- 段落样子CTParagraphStyle.pdf

    CTParagraphStyle是CoreText框架中一个非常重要的类,它提供了丰富的文本段落排版选项,能够满足开发者在iOS平台上实现复杂文本布局的需求。通过合理使用CTParagraphStyle及其属性,开发者能够灵活地控制文本的显示...

    ios-文字两头对齐.zip

    标题"ios-文字两头对齐.zip"表明这是一个与iOS平台相关的资源包,专门处理文本两端对齐的问题。这个压缩包可能是包含代码示例、UI组件或者自定义控件的解决方案,用于快速集成到iOS项目中,使得开发者可以轻松实现...

    iOS coreText

    - 文本属性:可以设置文字颜色、字体、对齐方式、行间距、段落间距等。 - 高亮和链接:通过添加属性到NSAttributedString实现特定文本的高亮或点击事件。 - 属性串操作:利用CFAttributedStringRef进行属性文本的...

    ios-常用的富文本.zip

    在iOS开发中,富文本(NSAttributedString)是一种强大的工具,它允许开发者在文本中混合不同的样式,如颜色、字体、大小等,以实现丰富的文本显示效果。这个“ios-常用的富文本.zip”压缩包可能包含了一个名为...

    IOS源码——UICoreTextView-CoreText文字渲染.zip

    《iOS中的UICoreTextView与CoreText文字渲染技术详解》 在iOS开发中,文本显示是界面设计不可或缺的一部分。为了实现高效且美观的文字渲染,Apple提供了CoreText框架,该框架为开发者提供了底层的文本处理能力。...

    IOS应用源码——TTTAttributedLabel for iOS.rar

    1. **富文本支持**:TTTAttributedLabel可以处理NSAttributedString对象,允许你在同一段文字中设置不同的字体、大小、颜色、行距等属性,甚至可以插入图像或自定义的图形元素。 2. **链接处理**:与UILabel不同,...

    IOS应用源码之【类库与框架】Core Text Objective-C Wrapper.rar

    这个名为"IOS应用源码之【类库与框架】Core Text Objective-C Wrapper.rar"的压缩包文件,显然是一个针对Core Text框架的Objective-C封装库,方便开发者更高效、更便捷地在iOS应用中处理文本。 Core Text是Apple...

    ios-富文本.zip

    总的来说,iOS的富文本处理是一个涉及多个层面的概念,从简单的样式设置到复杂的排版布局,都需要开发者有一定的理解。这个“ios-富文本.zip”资源可能包含了关于如何在iOS应用中实现和控制富文本的详细教程、示例...

    ios文字编辑器功能

    这是一款很不错的ios文字编辑器功能源码,该功能是十分强大的文字编辑器,几乎拥有了所有常见的文字编辑功能,基本相当于一个Page/Word文档编辑器了!文字编辑工具全部放在键盘的toolbar上。十分出色的Demo!具体...

    IOS应用源码——RichText.rar

    8. **手势识别与交互**:在富文本编辑器中,手势识别是非常重要的,比如选中文本、拖动段落、缩放字体等。这些可以通过`UIGestureRecognizer`来实现。 9. **性能优化**:当处理大量富文本时,性能是个关键问题。...

    IOS高访新浪微博界面(处理@#链接 特殊字符 )

    4. **界面排版**:确保界面整洁,避免文字堆砌,可以使用`NSTextContainer`和`NSLayoutManager`来控制文本的布局。通过调整行间距、字间距以及段落样式,可以使得包含@#链接的文本看起来更加有序和易读。此外,利用...

    IOS应用源码之支持丰富文本样式的工具.zip

    通过初始化一个`NSAttributedString`实例,我们可以指定字符串以及与之关联的属性字典,其中键值对表示了各种文本属性。 例如,设置一段文本的字体和颜色可以这样写: ```swift let attributedString = ...

    ios-图文混排,发表帖子.zip

    本项目利用YYText这个强大的第三方库,实现了图文混排的功能,允许用户自由编辑文字和图片,并将排版后的数据以字典形式提交给服务器。 首先,YYText是由YYKit框架提供的一部分,YYKit是iOS平台上一个非常全面的...

    iOS 富文本

    6. **富文本与CoreText**: CoreText是iOS中的底层文本渲染框架,可用于更复杂的文本布局和排版。当`NSAttributedString`无法满足需求时,可以通过CoreText进行自定义绘制。 7. **富文本与Markdown**: 有时候,...

    文字相关知识分享.zip

    3. **文本属性设置**: CoreText支持通过NSAttributedString来设置文本属性,如字体、颜色、下划线样式等。通过创建NSAttributedString并添加NSFontAttribute、NSForegroundColorAttribute等键值对,我们可以为不同...

    IOS源码——DTCoreText-1.6.10在UITextView上实现十分丰富的文字效果.zip

    在iOS开发中,我们常常需要在应用程序中展示丰富多样的文本内容,包括字体、颜色、链接、图片等元素。对于这些需求,苹果的默认控件如UILabel和UITextView往往无法满足。这时,第三方库DTCoreText便应运而生,它为...

    iOS游戏应用源代码——mattt-TTTAttributedLabel-1.2.1-8-gbe7aecd.zip

    3. **自定义排版**:支持自定义行间距、段落间距,以及首行缩进等排版效果。 4. **图像嵌入**:可以在文本中嵌入图像,实现图文混排。 5. **KVO(Key-Value Observing)支持**:可以监听文本、字体、颜色等属性的...

Global site tag (gtag.js) - Google Analytics