如果你的项目是使用代码布局的话,在代码里面对控件的布局做一些调整时,是不能实时看到修改的效果的,每次修改都需要重新跑一下工程。而通过使用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打印出来。