国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

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

分享到微博請遵守國家法律
高要市| 南通市| 松桃| 台中市| 文昌市| 绵阳市| 东莞市| 延庆县| 沂南县| 田林县| 富民县| 原平市| 革吉县| 内黄县| 东港市| 金溪县| 五台县| 延边| 宕昌县| 微山县| 托克逊县| 寿阳县| 峨边| 华安县| 临沧市| 葫芦岛市| 调兵山市| 沛县| 常德市| 岑巩县| 益阳市| 双桥区| 江城| 颍上县| 集安市| 浦县| 万州区| 城固县| 福鼎市| 西林县| 岢岚县|