最近两周疯狂地加班赶项目,很多积累的问题都没有及时做总结,今天把上两周中出现的问题做个总结吧:
1. Xcode必须手动Clean项目资源文件
之前是因为项目需要,有一些资源文件更换了,比如图片什么的,但是后来发现已经把本地的文件都彻底删除了依旧显示的还是原始的图片,而且更换的相同名字的图片还会提示警告重名,当时不知道是怎么回事,后来想到以前开发Symbian的时候也需要重新clean后再编译才行,就试了一下先clean后再重新编译,果然就好使了。
然后就google了一下,发现这确实是XCode的一个bug,网上有个方法加入脚本可以在每次build的时候自动clean。
2. xib文件autolayout的问题
之前自己手动画了一个xib文件,发现想要手动改变里面view的大小是做不到的,后来请教了下同事,原来是在 file inspector里面有一项 use auto layout,把这个勾去掉之后就可以手动改变view以及其中各类控件的大小和位置了
3. 关闭ARC功能
项目中间引入了JSON的代码,后来发现JSON不能使用ARC,于是就需要把这个文件的ARC功能屏蔽了,采用的方法是在选中项目的project文件 ->Targets->Build Phase 选择你想要屏蔽ARC的文件,双击,然后在弹出来的对话框里面输入-fno-objc-arc
4. 嵌套StoryBoard
所谓嵌套storyBoard就是在一个SB里面调用另外一个SB。这个过程和第一次程序启动后加载页面一样,就是先获取到storyBorad的名字,然后得到那个类的SB,接着在你想要加载这个页面的地方加载就可以了,实例代码如下:
UIStoryboard *mainStoryBoard = [UIStoryboard storyboardWithName:@"map" bundle:nil]; splitViewController = [mainStoryBoard instantiateViewControllerWithIdentifier:@"MapSplitController"]; splitViewController.view.frame = CGRectMake(0, 64, splitViewController.view.frame.size.width, splitViewController.view.frame.size.height-120); [self.view addSubview:splitViewController.view];
"map"是想要引用的storyBoard的名字,这个名字的写法在之前的blog里面提到了,在说一下吧,就是在右侧的identity and type里面,splitViewController是想要显示的页面,记得要在头文件里面加入这个类的h文件。然后可以重新设置这个类的frame,然后addsubview里面。