五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

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

分享到微博請遵守國家法律
二连浩特市| 临江市| 高雄市| 贵定县| 安国市| 景洪市| 尤溪县| 绥滨县| 石楼县| 疏勒县| 修文县| 贡山| 张掖市| 凯里市| 剑阁县| 荆州市| 怀柔区| 乐陵市| 岢岚县| 峨眉山市| 金湖县| 涪陵区| 时尚| 平泉县| 孝感市| 葫芦岛市| 濮阳县| 龙里县| 安福县| 龙海市| 台南市| 宜昌市| 孟州市| 乌鲁木齐县| 安吉县| 新沂市| 长治市| 陕西省| 沅陵县| 新泰市| 南皮县|