上一部分主要讲解了关于单个视图的操作以及控件的使用与控制,从这一节开始,我们将统一讲解多个view的控制,以及各种不同的UIViewController部分。所以感觉这本书的组织应该分为三个部分,第一部分单视图及控件,第二部分多视图控制,第三部分为其他,各种iphone及ipad开发的外围补充知识。
第6章,关键点 通过自定义的方式创建了一个多个视图进行切换的事例
- 多视图应用程序的体系结构,是一个rootview,其他是子view,然后通过一个rootview完成对多个view的切换。主要的实现方案,采用了IB方式的rootviewcontroller控制方式。也就是说,首先,应该在delegate当中,设定rootviewcontroller的对象,然后再mainwindows.xib当中增加该对象,这里需要注意的是,rootviewcontroller此时是没有view的,那么就需要添加一个view这样,mainwindows.xib当中实际上是将view看做普通的控件在使用的。
- 添加通过IB,添加toolbar,再通过IB,添加toolbar button item,然后添加该item的响应函数,从而完成不同viewcontroller的切换。
- 说明:该部分的代码,是分别通过新建文件,添加了带有xib的UIViewctroller结构,该部分的含义是,通过controller间接地控制UIView,而不是直接的使用和控制UIView。这是一个通用的思路,需要记住。
- 实现动画方式的UIVIEW视图切换
- [UIView beginAnimations:@"" context:nil] ;
- [UIView setAnimationDruation:1.25];
- [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
- ...
- [UIView setAnimationTransition: forView:cache:];实现对特定的view进行动画。
- ...
- [UIView commitAnimations];提交动画效果。
第7章,关键点,讲解了两个内容:UITabBarcontroller 和UIPickerView的使用
- UITabBarController的用法,这里介绍的也是通过IB方式,添加TABBAR的方法,首先在委托当中定义该变量,然后再mainwindows.xib当中放入该对像,然后委托和controller对象进行关联。然后再在委托的manwindow当中 addsubview。
- 对于uitabbarcontroller当中的item,是要在IB当中添加tab bar item,然后通过IB的设置,将每个item对应的VIEWCONTROLLer设定为创建的viewcontroller,然后将类属性,设定为创建的viewcontroller类。然后再修改item属性,使其具有名字和图片。
- 说明:上述的整个过程,说明了使用IB创建TABBARCONTROLLER结构的方法,还有直接使用代码的表现方法,见本博客当中的另一篇。
- 对于UIPickerview的使用,唯一需要记住的一点就是该对象需要实现一个委托,和一个数据源,跟tableview的实现非常的相似。UIDatePicker比较简单,不必实现委托和数据源。
- 注意:在bundle当中可以通过提供plist的属性文件,将数组的数据写入到plist当中,这样做的好处是可以不必频繁的编译代码。
- 注意: NSInteger对象,定义是不带有*号的,因为在mac和ios当中,会根据系统是32位的还是64位的来自动创建数据类型,因此该类型不像对象类型,必须有*号。
第8章,关键点,讲述tableview的各种使用方法
- tableview的样式,一共三种,组样式,普通样式,索引样式
- 实现tableview的关键是实现委托和数据源。除此以外,还需要注意一点,就是每个tableview当中的cell的样式,通过cell可以添加图片,可以添加button,可以添加accessory。
- 设置表内容的缩进,使用方法indentationlevelForRowAtIndexPath返回的是缩进的级别
- 处理行选择,有willselectrowatindexpath ,和didselectrowatindexpath.
- 向table当中添加索引,使用函数sectionIndexTitlesForTableview函数。
- UITableViewCell是可以定制的,定制的方法,一种是可以通过contentview中添加子view,另一种方法,是使用IB创建一xib,然后将cell对象与该xib的cell对象关联,然后将xib进行显示加载。然后直接使用定义的cell对象就可以了。
第9章,关键点,将属了navigationcontroller的使用
- UINavigationController和UITabBarController 的功能差别,在于navigation使用了栈的方式去处理每个子view。
- 使用方法,与uitabbarcontroller一样,不在重复描述。
- 注意一点是,对于只是简单罗列内容的table,可以直接继承UITableVivewController,比如导航控制的第一view。
- 对于UIVIEW来讲,当输入完成第一个edit之后,自然而言希望通过按enter或者return就切换到下一行,那么可以有IB的方法和编程的方法,IB的方式是安装control键,一个控件,拖到下一个控件,从而完成顺序的设定。而编程的方法时,通过调用superview,然后将下一个控件,becomeFirstResponder的方式。