IOS开发总结

来源:互联网 发布:网络信息安全组制定 编辑:程序博客网 时间:2024/06/05 19:01

IOS开发总结:

1、搞清楚生命周期,didFinishLauch-->init-->loadView-->viewDidLoad-->.....


2、搞清楚视图、视图控制器、导航栏、底部TabBar之间的关系:一般是TabBar里面装导航栏,导航栏再装视图控制器,视图控制器再装视图。导航栏、底部tabBar实例的生成一般是在AppDelegate.m文件中定义。设置window的rootViewController为底部tabbar,底部tabbar装载了若干个导航栏,导航栏也是一个容器,装载了视图,push视图的时候,视图一个个入栈,pop的时候出栈。


3、在导航栏设置背景的时候,要注意不同版本的方法是不一样的,5.0一下的是通过draw方法来设置的,而5.0后可以直接调用setBackgroundImage方法。所以程序应该先判断版本的高低,可以用respondTo来判断是否相应这些方法,响应的话就会自动调用这些方法。


4、IOS5.0版本以下,在设置导航条的背景、标题、按钮的时候,系统没有提供方法让我们改,给导航条设置标题只能自定义一个UILabel,让self.navigatiomItem.titleView设置为自定义的label。同理返回按钮也是要通过自定义按钮,然后加在navigationItem.leftBarButtomItem上的。像导航栏的修改的这些代码一般放在对应的viewController中的viewDidLoad或者viewWillAppear方法中,也可以放在pushViewController方法前面,但是这样就往往放在其他类中,造成A类的事在B类中完成,不太好。


5、tabBar的设置也一样,5.0以前的若要改变barButton,可能往往需要自己做一个透明的Button上去。


6、viewController中的视图不要只用一个类来完成,要看能否抽出可重用的东西来,可以的话定义成一个类,便于重复利用。


7、关于代码框架:(1)在视图类中,子视图、控件的实例化,空间的分配最好写在setter方法中,而不要全部放在init**方法里面。一般是将控件定义为readonly的property属性,重写他们的getter方法,在getter方法里面来完成初始化工作。(2)视图类一般只完成视图控件空间、位置的定义和初始化工作,而数据的设置一般是放在viewController中来完成。(3)


8、设置synthesize listItems = _listItems,当调用self.listItem的时候,也就会去调用listItem的getter方法。


9、对于控件大小、位置,都应该用宏定义来标识,不然修改很麻烦。


10、做项目之前应该先构思项目的框架,由面向对象的思想来构思,界面总共由几个对象构成,要写几个类。类之间的数据如何传送等。构思完了再开始写,这样就不乱。类要遵循单一职责,一个类只干一件事。