[转] iOS文字排版(CoreText)那些事儿】的更多相关文章

文章转载自 http://www.cocoachina.com/applenews/devnews/2014/0521/8504.html iOS文字排版(CoreText)那些事儿 转自阿毛的蛋疼地 第一次比较深入接触iOS文字排版相关内容是在12年底,实现某IM项目聊天内容的图文混排,照着nimbus的AttributedLabel和Raywenderlish上的这篇文章<Core Text Tutorial for iOS: Making a Magazine App>改出了一个比较适用…
一.CoreText的简介 CoreText是用于处理文字和字体的底层技术.它直接和Core Graphics(又被称为Quartz)打交道.Quartz是一个2D图形渲染引擎,能够处理OSX和iOS中图形显示问题.Quartz能够直接处理字体(font)和字形(glyphs),将文字渲染到界面上,它是基础库中唯一能够处理字形的模块.因此CoreText为了排版,需要将显示的文字内容.位置.字体.字形直接传递给Quartz.与其他UI组件相比,由于CoreText直接和Quartz来交互,所以它…
UITextView文本排版 1.配置NSMutableParagraphStyle NSMutableParagraphStyle *MParaStyle = [[NSMutableParagraphStyle alloc] init]; MParaStyle.alignment = NSTextAlignmentNatural; // 文字站位 MParaStyle.maximumLineHeight = 20; // 最大高度 MParaStyle.lineHeightMultiple =…
明天就是周四了.貌似前几天还在恨周一呢.话说今天几乎开了一整天的会,正经事情没做多少:这种感觉比一整天从早到晚12个小时的忙碌于一件事情还要让人感到疲惫的对叭?那今天的iOS7设计规范更新又是一篇很简短的话题,关于文字及配色. 重要:这是针对于正在开发中的API或技术的预备文档(预发布版本).虽然该文档在技术精确度上经过了严格的审核,但并非最终版本,仅供苹果开发者计划的注册会员使用.苹果提供这份机要文档的目的,是帮助你按照文中描述的方式对技术的选择及界面的设计开发进行规划.这些信息有可能发生变化…
amazeui学习笔记--css(基本样式3)--文字排版Typography 一.总结 1.字体:amaze默认非 衬线字体(sans-serif) 2.引用块blockquote和定义列表:引用块blockquote和定义列表(dl dt)注意一下 3.样式不能正常显示:拷贝过来的很多样式在博客中都不能正常显示 二.文字排版Typography 目录 字体 字体定义 字体辅助 Class Webkit 反锯齿 字体相关链接 元素基本样式 标题 <h1> - <h6> 段落 &l…
/*====================================================================== 文字排版 总时间限制: 1000ms 内存限制: 65536kB 描述 给一段英文短文,单词之间以空格分隔(每个单词应包括其前后紧邻的标点符号).请将短文重新排版,要求如下: 每行不超过80个字符:每个单词居于同一行上:在同一行的单词之间以一个空格分隔:行首和行尾都没有空格. 输入 第一行是一个整数n,表示英文短文中单词的数目. 其后是n个以空格分隔的…
今天学习的div,了解了div是干什么用的掌握了什么是盒子模型,以及div的外边距内边距以及边框,运用div和CSS给文字排版,利用边框的来做图像,div溢出的处理 CSS初始化: 精确排版的时候用这个清理一下    *{    margin:0px;    padding:0px;    }        */ <!doctype html> <html> <head> <meta charset="utf-8"> <title&…
Web开发过程中文字排版,默认的情况下,行末的长单词会撑开容器. 我们想要的是(像word一样.能够自动换行.既不撑大容器.也不强制拆开行末单词.并且不会隐藏行末单词的多余字母) ①不能撑开容器 ②完整的单词不能被强制拆开 ③如果行末是长单词的话,整个单词都被换行到下一行 中文排版 标点符号:规定不能至于行首 处理:chrome.IE8.FF浏览器默认标点符号不会置于行首 有些ui会要求 不能至于行尾 技巧:文本内容基本确定的话可以设置letter-spacing的间距来讲行尾的符号调整走 英文…
世界到底是什么?其实世界很简单,正所谓一花一世界,一树一菩提,世界就在我们身边.造物神是伟大的,在我看来无论是HTML,css,js都可以看作是一个世界,但是他们是构成宏观世界不可或缺的,正如IU框架boostrap离不开jQuery,无数小世界才能编制成美丽的宏观大世界.让我们先来见识一下bootstrap内的山川河流(网格系统)吧! 1.通过以下代码Bootstrap 自动布局将行分为相等宽度的列(可以超过12): <div class="row"> <div c…
<iOS App开发的那些事儿>系列文章从更宏观的角度出发,不仅仅局限于具体某个功能.界面的实现,而是结合网易云信iOS端研发负责人多年的经验,从如何优化现有代码的角度出发,深度分析如何创造出iOS App开发中比较合适的规范和框架. 推荐阅读 iOS App开发的那些事儿1:如何建立合适的规范 一个合适的框架不是银弹,在我看来框架要解决的问题从来不是:有了框架之后,工程就能无比正确地进行下去.好的框架能够做到的事仅仅只是:降低通用问题的复杂度和减少发生错误的可能性.个人认为一个良好iOS A…
<iOS App开发的那些事儿>系列文章从更宏观的角度出发,不仅仅局限于具体某个功能.界面的实现,而是结合网易云信iOS端研发负责人多年的经验,从如何优化现有代码的角度出发,深度分析如何创造出iOS App开发中比较合适的规范和框架. 推荐阅读 iOS App开发的那些事儿2:如何搭建合适的框架 将代码规范合理分级 大家都理解软件开发需要合适的规范:代码规范,程序规范,流程规范等等,以此来减少意外的出现:最少惊讶原则.但在实际执行中却会碰到各种情况,其中最大的问题是:怎么鉴别哪些规范是需要强制…
direction定义文字排列方式,所有浏览器都兼容这个属性,有两个可选值rtl和ltr.文字排版的参数说明如表1所示. 表1  CSS3文字排版参数说明 上表所示,ltr是初始值,表示left-to-right,就是从左往右的意思,具体描述就是内联内容从左往右依次排布.我们平时网页的处理都是这样的,比方说前后两个图片,默认情况下,DOM在前的就显示在左边. rtl则是另外一个值,right-to-left缩写,就是从右往左的意思,再具体描述下,就是内联内容是从右往左依次排布的,加入应用了这个C…
小程序中一般很少大段落的文字,基本是4.5个字的主题.一行标题.一行摘要.两行描述.显示时超出部分用省略号代替.下面结合工具使用介绍一下文字排版的方法.先看效果图.  工具中属性设置如下图:两行文字属性,限制行数=2,表示最多两行,超出部分用省略号代替. 不限制行数属性中限制行数=0,表示在小程序中根据文字内容自动拉伸. 一行文字属性中限制行数=1,表示文字只显示一行,超出部分省略号代替. 以上文字是显示在view中的,自动生成的wxml如下: <view class="WViewColu…
iOS没有现成的支持图文混排的控件,而要用多个基础控件组合拼成图文混排这样复杂的排版,是件很苦逼的事情.对此的解决方案有使用CoreText进行绘制,或者使用TextKit.本文主要讲解对于CoreText的使用. 案例下载地址 https://github.com/ClavisJ/CoreTextDemo 环境信息: Mac OS X 10.10.1 Xcode 6.1.1 iOS 8.1 正文: 一.Core Text简介 CoreText是基于IOS3.2及OSX10.5的用于文字精细排版…
这里简单的写一些涉及到字体排版中常用到的属性, 大家可以学习查看, 也可以mark下以后看. font-family: "Micrsoft Yahei"; 设置字体 font-size: 20px; 设置字号 color: red; 设置颜色 font-weight: bold; 文字加粗 font-style: italic; 文字斜体 text-decoration: underline; 文字下划线 text-decoration: line-through; 文字删除线 tex…
今天项目没什么进展,公司后台出问题了.看了下刚刚学习Android时的笔记,发现TextView会自动换行,而且排版文字参差不齐.查了下资料,总结原因如下: 1.半角字符与全角字符混乱所致:这种情况一般就是汉字与数字.英文字母混用 解决方法一: 将textview中的字符全角化.即将所有的数字.字母及标点全部转为全角字符,使它们与汉字同占两个字节,这样就可以避免由于占位导致的排版混乱问题了. 半角转为全角的代码如下,只需调用即可. public static String ToDBC(Strin…
一.font-size 我来试一试:为第一段中的“胆小如鼠”设置字号为:20px,字体颜色为:red. <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>字号.颜色</title> <style type="text/cs…
本文转载自:http://blog.sina.com.cn/s/blog_821e2bb101011803.html textview自动换行导致混乱的原因----半角字符与全角字符混乱所致!一般情况下,我们输入的数字.字母以及英文标点都是半角,所以占位无法确定.它们与汉字的占位大大的不同,由于这个原因,导致很多文字的排版都是参差不齐的.对此找到了两种办法可以解决这个问题: 1. 将textview中的字符全角化.即将所有的数字.字母及标点全部转为全角字符,使它们与汉字同占两个字节,这样就可以避…
今天项目没什么进展,公司后台出问题了.看了下刚刚学习Android时的笔记,发现TextView会自己主动换行,并且排版文字參差不齐.查了下资料,总结原因例如以下: 1.半角字符与全角字符混乱所致:这样的情况一般就是汉字与数字.英文字母混用 解决方法一: 将textview中的字符全角化.即将所有的数字.字母及标点所有转为全角字符,使它们与汉字同占两个字节,这样就能够避免因为占位导致的排版混乱问题了. 半角转为全角的代码例如以下,仅仅需调用就可以. public static String To…
文字竖立排版,方法一 @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <title>数据</title> <link href='http://cdn.webfont.youziku.com/webfonts/nomal/16398…
.katex { display: inline-block; text-align: initial; } .katex { font-family: Consolas, Inconsolata, Courier, monospace; line-height: 1.2; white-space: nowrap; text-indent: 0px; text-rendering: auto; font-size: 1em; } .katex * { } .katex .katex-html {…
iOS开发过程中相信大家常常遇到当须要给字体,颜色,下划线等属性的时候參数是一个NSDictionary 字典 可是字典里面究竟有哪些键值对了 我们把经常使用的总结一下 首先我们创建一个最简单的.设置一下字体和大小 我们使用是一个NSString 的方法 - (void)drawInRect:(CGRect)rect withAttributes:(NSDictionary *)attrs 来将一个字符串打印到view上 -(void)drawRect:(CGRect)rect { self.b…
飞思卡来互联网提供全球性的 看了看 风格的呵呵 合格否d合格否的 secure embedded嵌入式解 个国家和地区,注册了成千上万项专利,产品面向 物联网,汽车电子,消费电子,工业及网络设备等市 场,提供技术包括微处理器,微控制器,传感器,模拟 IC和连接,产品和技术推动新一波创新浪潮 1. 飞思卡来互联网提供全球性的 看了看风格的呵呵合格否d合格否的secure embedded嵌入式解 1.1. 个国家和地区,注册了成千上万项专利,产品面向 物联网,汽车电子,消费电子,工业及网络设备等市…
DirectWrite是 DirectX 家族中专门用来做文本处理的部分,主要配合Direct2D进行渲染工作. 一.字符串去尾介绍 在文字渲染中,不免会遇到字符串去尾的需求.字符串去尾指的是:当字符串在指定的RECT中无法全部显示时,如何对文本进行截取,以适应目标区域大小:DirectWrite中的介绍是设置溢出布局宽度的文本的剪裁.我们把这种截取操作称为“字符串去尾”.   首先,给大家介绍一个DirectWrite中的类,IDWriteTextFormat类用于格式化文本的字体和段落属性,…
// Predefined character attributes for text. If the key is not in the dictionary, then use the default values as described below. UIKIT_EXTERN NSString * const NSFontAttributeName NS_AVAILABLE(10_0, 6_0);                // UIFont, default Helvetica(N…
原文网址:http://www.jianshu.com/p/f797793d683f 参考文章 navigationItem UINavigationItem UINavigationBar UIBarButtonItem UIButton iOS 7 教程:定制iOS 7中的导航栏和状态栏 前言 本文试图阐释清楚导航栏相关的概念和用法,比如UINavigationBar和UINavigationItem的区别和联系,UIBarButtonItem的用法以及在纯代码和storyboard中有什么…
我们还可以使用css样式来改变文字的样式:粗体.斜体.下划线.删除线,可以使用下面代码实现设置文字以粗体样式显示出来. p span{font-weight:bold;} 在这里大家可以看到,如果想为文字设置粗体是有单独的css样式来实现的,再不用为了实现粗体样式而使用h1-h6或strong标签了. <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content=&q…
可以使用下面代码设置网页中文字的字号为12像素,并把字体颜色设置为#666(灰色): body{font-size:12px;color:#666} 示例: <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>字号.颜色</title> &…
我们可以使用css样式为网页中的文字设置字体.字号.颜色等样式属性.下面我们来看一个例子,下面代码实现:为网页中的文字设置字体为宋体. body{font-family:"宋体";} 这里注意不要设置不常用的字体,因为如果用户本地电脑上如果没有安装你设置的字体,就会显示浏览器默认的字体.(因为用户是否可以看到你设置的字体样式取决于用户本地电脑上是否安装你设置的字体.) 现在一般网页喜欢设置“微软雅黑”,如下代码: body{font-family:"Microsoft Yah…
如何使用自定义字体 在讲icon font之前,首先先来看看普通自定义字体是如何在ios中使用的,两个原理是一样的.这里以KaushanScript-Regular为例: Step 1: 导入字体文件 将字体文件拖入项目(ios支持的字体格式有:.ttf..otf,其他格式不确定): 然后再在项目的资源池中确认字体文件是否加入项目,打开xcode项目的Build Phases中查看: Step 2: 配置.plist文件 UILabel *label5 = [[UILabel alloc] in…