本篇介紹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ù)對圖片操作進行處理
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26