如果你的項目是使用代碼布局的話,在代碼裡面對控制項的布局做一些調整時,是不能即時看到修改的效果的,每次修改都需要重新跑一下工程。而通過使用dyci這個工具,它可以在程式啟動並執行時候進行代碼注入,而無需重新啟動工程,也能看到即時修改的效果,這對調試UI是很有協助的。下面介紹一下具體的使用方法。
1、安裝dyci,只需要運行一下install.sh指令碼就可以了。在安裝成功以後,重啟XCode,在Product菜單下,會多出一個Recompile and inject選項。
git clone https://github.com/DyCI/dyci-main.git
cd dyci-main/Install/
sudo sh install.sh
2、下載最新版本的dyci.framework,目前最新的版本是v0.1.5.6。
3、將framework添加到你的工程中,並在Other Linker Flags設定中添加-ObjC標籤,因為dyci庫裡有Category,需要加此flag,以使庫中Category生效。
4、如果在調整完UI後,要立即看到效果的話,還需要在代碼裡面添加updateOnClassInjection方法,代碼注入成功以後,會回調這個方法,可以在這個方法裡面讓頁面重新布局,或者重新構建view。
UIView- (void)updateOnClassInjection { [self setNeedsLayout]; [self setNeedsDisplay];}UIViewControllers - (void)updateOnClassInjection { if ([self isViewLoaded]) { UIView * viewSuperView = view.superview; [self.view removeFromSuperview]; self.view = [self recreateView]; // <-- Custom metod of view recreation [viewSuperView addSubview:[self view]]; }}
5、調整頁面配置,然後儲存,再按下control+x快速鍵,會看到有代碼注入成功的log列印出來。