代码改变世界

Iphone表视图的简单操作

2012-03-10 21:14  htc开发  阅读(273)  评论(0编辑  收藏  举报

下午到打了几个小时的球,回来洗了个燥,觉得全身都很舒服,感觉体内一周的毒素全部排除体外,哈哈,还是得多运动运动,特别是我们这些做程序员的,进入正题:

1.创建一个Navigation—based—Application项目,这样Interface Builder中会自动生成一个Table View,然后将Search Bar拖放到表示图上,以我们要给表示图添加搜索功能,不要忘记将Search Bar的delegate连接到File‘s Owner项,然后将Search Bar与searchBar变量连接。

2.在Resources文件夹下创建一个Movies.plist文件,然后为该文件添加一些数据,如下图:


3.在.h头文件添加如下内容:


4.当加载View窗口时,首先定位属性列表并把这个列表加载到listOfMovies中,然后将所有的年份提取到years中,然后添加搜索条并初始化搜索条用到的数据:


5.在自动生成的方法numberOfSectionsInTableView中添加如下代码,表示告诉表示图一共分多少节:


6.在自动生成的方法tableView:numberOfRowsInSection:中添加如下代码,表示告诉表视图每一节显示多少行:


7.在自动生成的方法tableView:cellForRowAtIndexPath:中添加如下代码,为每一行设值:


8.实现tableView:titleForHeaderInSection:方法,将得到的年份作为每一节的Header:


9.为表格添加索引,只需要实现sectionIndexTitlesForTableView:方法,该方法返回每一节的Header数组:


10.当用户点击搜索栏会促发searchBarTextDidBeginEditing:事件(UISearchBarDelegate协议中定义的一个方法,我们在.h头文件中实现了这个协议),在该方法中,向屏幕右上角添加一个Done按钮,当用户点击Done按钮时会调用doneSearching方法:

11.doneSearching方法使得搜索栏移除了First Responder状态,因而会隐藏键盘,同时,通过调用表视图的reloadData方法重新加载表视图:


12.当用户在搜索栏中输入时,输入的每个字符都会触发searchBar:textDidChange:事件,只要搜索栏中有一个字符,就会调用searchMoviesTableView方法:


13.searchMoviesTableView方法会搜索listOfMovies数组,通过NSString类的rangeOfString:options:方法,使用特定的字符串对每个名称进行搜索,返回的结果是一个nsRange对象,如果长度大于0就表示有一个匹配结果,将它添加到searchResult书组中:


14.当用户点击键盘上的Search按钮时,就会调用如下方法:


15.新建一个新的文件,该文件在后面定义,点击表格的某一行后就会调转到该页面去并将点击的那一样的名称传过去,要想做到这一点必须实现如下方法:


16.新添加的页面很简单,主要用来测试表格的点击事件,导航然后显示传过来的字符串:

Interface Builder中添加两个lable,具体的就不详细了,很简单的,下面是这个界面的.h和.m文件: