最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

iOS開發(fā)之弧形文字

2022-02-25 16:33 作者:yollet  | 我要投稿

項目需要一個環(huán)形進(jìn)度條,所以需要弧形的文字顯示進(jìn)度,網(wǎng)上找了一圈沒有什么適合的,所以自己封裝了一個簡單的弧形文字。

基本屬性參數(shù)如下

基本思路是?CTRunDraw()方法對每個glyph進(jìn)行繪制 關(guān)于?CTRun CTLine Glyphs 的解釋可以參照"https://www.jianshu.com/p/639f626c1661"

首先我們需要一個結(jié)構(gòu)體來計算出每個glyph的繪制點和偏移角度:

創(chuàng)建上面結(jié)構(gòu)體并賦值:


其中PrepareGlyphArcInfo()是賦值的函數(shù),它通過遍歷每個CTRun中的glyph,并用單個glyph的width對結(jié)構(gòu)體GlyphArcInfo賦值,并通過每個glyph中心點距離和總行寬的比值計算angle進(jìn)行賦值:

將繪制原點設(shè)置為我們需要的位置:

開發(fā)的時候可以畫一個圓來方便理解:

開始繪制圖形,設(shè)置繪制的起始點:

對context進(jìn)行旋轉(zhuǎn)至開始角度:

遍歷glyph并作圖:

由此畫出來的圖形是倒著的 所以需要翻轉(zhuǎn)畫布 (放在繪制之前)

調(diào)用:

效果圖:

drawRect完整代碼:


demo地址:"https://github.com/yollet/YOTool.git"

參考內(nèi)容:"https://www.it610.com/article/1187879396397129728.htm"

蘋果官方文檔: "https://developer.apple.com/library/mac/samplecode/CoreTextArcCocoa/Introduction/Intro.html"


iOS開發(fā)之弧形文字的評論 (共 條)

分享到微博請遵守國家法律
绥宁县| 江城| 定结县| 方山县| 独山县| 布尔津县| 龙泉市| 攀枝花市| 舟曲县| 湟源县| 罗定市| 临高县| 龙海市| 诸暨市| 巴林右旗| 蕉岭县| 康乐县| 绥阳县| 江口县| 津南区| 巴中市| 湘乡市| 广河县| 田阳县| 石泉县| 虹口区| 黎川县| 陇南市| 通渭县| 故城县| 奉节县| 绥阳县| 常宁市| 文昌市| 怀安县| 无极县| 宿州市| 庆城县| 车险| 徐汇区| 崇信县|