CoreText學(xué)習(xí)筆記二

我們都知道最初CoreText的設(shè)計(jì)是針對(duì)Mac開發(fā)的,所有的坐標(biāo)系都是基于Mac的坐標(biāo)系,原點(diǎn)在左下角,上一節(jié)的筆記中我們已經(jīng)對(duì)坐標(biāo)系進(jìn)行了反轉(zhuǎn).而且介紹了關(guān)于坐標(biāo)系旋轉(zhuǎn),放縮,平移的函數(shù)和方法.現(xiàn)在我們就進(jìn)行下面的學(xué)習(xí).

先看下面兩個(gè)方法:


方法解釋


先看第一個(gè)CGMutablePathRef這個(gè),他是creat了一個(gè)CGMutablePathRef的實(shí)例,那它的作用到底是做了什么啦,我們都只到蘋果開發(fā)的語言都是能夠從字面看出大概的意思的,那就是創(chuàng)建了一個(gè)可變的文本路徑,為什么說是可變啦.因?yàn)樗图项愐粯佣际欠譃榭勺兒筒豢勺兊?他所對(duì)應(yīng)的不可變的類型就是CGPathRef.為什么要?jiǎng)?chuàng)建這個(gè)可變的文本路徑啦,因?yàn)槲覀兿胍诤竺嫱ㄟ^CGPathAddRect函數(shù)來得到一個(gè)填充區(qū)域,因?yàn)槲覀冊(cè)诤竺嫘枰獙⑵浞湃氲揭粋€(gè)框架中.這個(gè)兩個(gè)函數(shù)也可以合并為一個(gè)函數(shù).


創(chuàng)建和添加區(qū)域合并成一個(gè)

上面兩個(gè)函數(shù)最終的結(jié)果和這個(gè)函數(shù)的結(jié)果是一致的.代碼貼出來了,效果就不看了,下去自己可以嘗試一下.

好了現(xiàn)在我們需要的填充路徑也有了,那現(xiàn)在還缺什么啦,

1.繪制的文本還沒有出現(xiàn)啦.

2.說了用CoreText繪制在上面,那到底如何繪制的啦.下面就開始我們這兩點(diǎn)研究吧.

了解TextKit的人知道,CoreText和TextKit都可以使用屬性化字符串,可以使用NSMutableAttributedString也可以使用CFMutableAttributedString對(duì)象,這里的轉(zhuǎn)換橋接關(guān)系就不講了,如果有興趣,改天可以專門寫一篇Foundation和CoreFoundation對(duì)象之間的橋接和轉(zhuǎn)換.

好了說了這么多,那我們先創(chuàng)建繪制的文本吧


屬性化字符串

創(chuàng)建玩繪制文本,拿到一接下來該怎么做啦.

文本這個(gè)東西都講究字體,字形,和排版等,那在CoreText是如何管理這個(gè)排版和布局啦.

CoreText為我們提供了一個(gè)創(chuàng)建框架排版器的方法,而且和上面的這個(gè)屬性化字符串相關(guān).


排版器

他是利用屬性花字符串創(chuàng)建了一個(gè)排版器,現(xiàn)在我們不過多的研究這個(gè)排版器.

從上面一路創(chuàng)建和修改下來發(fā)現(xiàn)有幾個(gè)報(bào)黃色警告,提示沒有用到,好了現(xiàn)在就搞到用到他們的時(shí)候了,到底什么東西要用到這些東西啦.那就是將整個(gè)填充區(qū)域都能放的下的框架.

看下面的代碼是如何創(chuàng)建這個(gè)框架的.


框架和繪制


這個(gè)函數(shù)需要的參數(shù)都有,排版器,CFRange對(duì)象和上面創(chuàng)建的填充區(qū)域,和一個(gè)存放單個(gè)字形等屬性的CFDictionary.這個(gè)函數(shù)并不能保證文本正好可以放進(jìn)框架中,CTFramesetterCreateFrame只是在填充區(qū)域中布局文本,直到空間不足或者是文本結(jié)束.效果如下:文本較長(zhǎng),繪制不下的情況.


將文本字?jǐn)?shù)擴(kuò)充

效果圖如下

未能顯示完整

然后就是將框架會(huì)知道上下文中,并釋放上面所使用creat創(chuàng)建的關(guān)于CoreFoundtion框架的對(duì)象.

那么簡(jiǎn)單的就這么完成了學(xué)習(xí),下面就該進(jìn)入復(fù)雜的學(xué)習(xí)了.如果還有什么沒有理解或者是有什么更好的想法的可以評(píng)論或與我聯(lián)系.如果喜歡文章或者想了解更多的關(guān)于CoreText的內(nèi)容就請(qǐng)動(dòng)動(dòng)小手,點(diǎn)下關(guān)注,不會(huì)懷孕的,不要怕!帶走想要的知識(shí),留下你們的??.

謝謝.

本人聯(lián)系方式:qq:513961360

email:513961360@qq.com

也可以加我們的qq群希望能與朋友們一起聊天和學(xué)習(xí).群里還有很多iOS開發(fā)者,幫助我們解決問題,并且同時(shí)學(xué)習(xí).

qq群號(hào):580284575

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末田巴,一起剝皮案震驚了整個(gè)濱河市嘀略,隨后出現(xiàn)的幾起案子授瘦,更是在濱河造成了極大的恐慌柿菩,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,482評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件谎亩,死亡現(xiàn)場(chǎng)離奇詭異撰豺,居然都是意外死亡洒琢,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門帕棉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來针肥,“玉大人,你說我怎么就攤上這事香伴∥空恚” “怎么了?”我有些...
    開封第一講書人閱讀 152,762評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵即纲,是天一觀的道長(zhǎng)具帮。 經(jīng)常有香客問我,道長(zhǎng)低斋,這世上最難降的妖魔是什么蜂厅? 我笑而不...
    開封第一講書人閱讀 55,273評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮拔稳,結(jié)果婚禮上葛峻,老公的妹妹穿的比我還像新娘。我一直安慰自己巴比,他們只是感情好术奖,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評(píng)論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著轻绞,像睡著了一般采记。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上政勃,一...
    開封第一講書人閱讀 49,046評(píng)論 1 285
  • 那天唧龄,我揣著相機(jī)與錄音,去河邊找鬼奸远。 笑死既棺,一個(gè)胖子當(dāng)著我的面吹牛讽挟,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播丸冕,決...
    沈念sama閱讀 38,351評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼耽梅,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了胖烛?” 一聲冷哼從身側(cè)響起眼姐,我...
    開封第一講書人閱讀 36,988評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎佩番,沒想到半個(gè)月后众旗,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,476評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡趟畏,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評(píng)論 2 324
  • 正文 我和宋清朗相戀三年贡歧,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拱镐。...
    茶點(diǎn)故事閱讀 38,064評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡艘款,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出沃琅,到底是詐尸還是另有隱情哗咆,我是刑警寧澤,帶...
    沈念sama閱讀 33,712評(píng)論 4 323
  • 正文 年R本政府宣布益眉,位于F島的核電站晌柬,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏郭脂。R本人自食惡果不足惜年碘,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望展鸡。 院中可真熱鬧屿衅,春花似錦、人聲如沸莹弊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽忍弛。三九已至响迂,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間细疚,已是汗流浹背蔗彤。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人然遏。 一個(gè)月前我還...
    沈念sama閱讀 45,511評(píng)論 2 354
  • 正文 我出身青樓贫途,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親啦鸣。 傳聞我的和親對(duì)象是個(gè)殘疾皇子潮饱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件诫给、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,024評(píng)論 4 62
  • 使用CoreText本身并不能進(jìn)行圖文混排, 但是可以使用CTRunDelegate將需要顯示圖片的位置預(yù)留出來啦扬。...
    樂亦l(xiāng)eeyii閱讀 2,548評(píng)論 1 6
  • 一早起來給自己定了6:30的鬧鐘扑毡,鬧鈴響的那一刻胃榕,身體太沉重了,幾乎醒不來的感覺瞄摊,自己的懶蟲病又犯了勋又!不想起來的聲...
    yoga麗閱讀 206評(píng)論 6 3
  • ? ~ opensslOpenSSL> genrsa -out rsa_private_key.pem 1024...
    iakuil閱讀 472評(píng)論 0 0
  • 鉛(なまり)の空(そら)重(おも)く垂(た)れ込(こ)み 陰霾的天空 垂下凝重的幕簾 namari no sora...
    晴天soleil閱讀 122評(píng)論 0 0