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

歡迎光臨散文網(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ā)之弧形文字的評論 (共 條)

分享到微博請遵守國家法律
汉寿县| 肥东县| 海伦市| 财经| 个旧市| 崇州市| 永城市| 青田县| 渝中区| 福清市| 淳化县| 汝南县| 二连浩特市| 敖汉旗| 安宁市| 江油市| 舟山市| 镇平县| 临海市| 全南县| 宝应县| 鹿泉市| 丹江口市| 阿坝| 广河县| 九龙县| 保德县| 岳阳县| 库车县| 廉江市| 鹤庆县| 陵水| 兴业县| 宜兰县| 汕尾市| 张掖市| 三门峡市| 南平市| 青海省| 勐海县| 洞口县|