你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發基礎 >> Xcode 裝逼插件:打字的震屏和火花效果

Xcode 裝逼插件:打字的震屏和火花效果

編輯:IOS開發基礎

hd.jpg

作者:才怪 授權本站轉載。

最近微博上在流傳一個Atom編輯器的插件:activate-power-mode,裝上這個插件後打字會有震屏和火花效果,非常牛逼,效果如下:

1.gif

據說有人用了,並且還是機械鍵盤,差點被同事打斷手了。

於是我花了幾天的下班時間,寫了個Xcode版的插件,模仿了這個效果:

2.gif

插件下載地址為:https://github.com/poboke/ActivatePowerMode,也可以在Alcatraz上搜索ActivatePowerMode進行安裝。

blob.png

這些功能實現起來也不難,主要是獲取光標所在位置的代碼顏色花了比較多時間。

我一開始以為代碼高亮的顏色是由NSAttributedString控制的,但是我獲取到的屬性裡只有字體字號等屬性,沒有NSForegroundColorAttributeName這個字段,所以只能用別的方法尋找。

用逆向思維思考一下,因為代碼高亮是由配色方案管理的,切換配色方案時,代碼顏色就會改變。而配色方案是根據單詞的類型來設置顏色的,所以猜想可能存在某個方法,可以讀取或設置某個范圍的文字的顏色,這樣才方便配色方案功能的實現。

先用關鍵字color在Xcode的私有類頭文件裡搜索,把搜到的方法名輸出到一個文本裡。然後再用關鍵字NSRange搜索,很快就發現了一個可疑的方法:- (id)colorAtCharacterIndex:(unsigned long long)arg1 effectiveRange:(struct _NSRange *)arg2 context:(id)arg3。然後再hook這個方法,果然返回了相應的顏色。


  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved