本篇介紹coretext中的圖文混排,這里暫用靜態(tài)的內(nèi)容,即在文本中某一固定位置插入圖片,而不是插入位置是根據(jù)文本內(nèi)容動態(tài)插入的(要實現(xiàn)這一效果需要寫一個文本解析器,將原信息內(nèi)容解析為某些特定格式的結(jié)構(gòu)來標示出特定的類型(比如文字、圖片、鏈接等),然后按照其結(jié)構(gòu)中的屬性配置,生成屬性字符串,之后渲染到視圖中)。

這部分的思路參考唐巧大神的blog。

在第一篇介紹過coretext是離屏渲染的,即在將內(nèi)容渲染到屏幕上之前,coretext已完成排版工作。coretext排版的第一步是組織數(shù)據(jù),即由原始字符串通過特定的配置來得到屬性字符串。實現(xiàn)在文字中插入圖片的大部分工作都是在這一步中完成的。

大體思路是:首先將原始純文本數(shù)據(jù)通過預定義的配置生成相應的屬性字符串A,然后生成一個字符作為占位符(繪制時在這個占位符中填充圖片),根據(jù)特定的配置生成屬性字符串B,然后將B插入到A相應位置,最后將合并后的A和圖片渲染到視圖中。

具體步驟如下:

一、創(chuàng)建存儲A的數(shù)據(jù)結(jié)構(gòu)CoreTextData與存儲B的數(shù)據(jù)結(jié)構(gòu)CTImgData

二、生成屬性字符串A

三、生成屬性字符串B

四、檢測圖片位置,以便后續(xù)對圖片操作進行處理

延伸閱讀

學習是年輕人改變自己的最好方式-Java培訓,做最負責任的教育,學習改變命運,軟件學習,再就業(yè),大學生如何就業(yè),幫大學生找到好工作,lphotoshop培訓,電腦培訓,電腦維修培訓,移動軟件開發(fā)培訓,網(wǎng)站設計培訓,網(wǎng)站建設培訓學習是年輕人改變自己的最好方式