UITableView使用方法_第1页
UITableView使用方法_第2页
UITableView使用方法_第3页
UITableView使用方法_第4页
UITableView使用方法_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、心之所向,所向披靡 1. 首先,Controller 需要实现两个delegate,分别是 UlTableViewDelegate 和 UlTableViewDataSource 2. 然后UlTableView 对象的 delegate要设置为 self。 3. 然后就可以实现这些delegate的一些方法拉。 (1) - (NSInteger)numberOfSectionslnTableView:(UITableView *)tableView; 这个方法返回 tableview有多少个section cpp view plaincopyprint? 1. /返回有多少个Sections

2、 2. - (NSInteger)numberOfSectionslnTableView:(UITableView *)tableView 3. 4. return 1; 5. /返回有多少个Sections -(NSInteger)numberOfSectionsInTableView:(UITableView return 1; (2) - (NSInteger)tableView:(UITableView *)table nu mberOfRows In Sectio n:(NSI nteger)sectio n; 这个方法返回对应的section有多少个元素,也就是多少行。 cpp v

3、iew plaincopyprint? 1. - (NSInteger)tableView:(UITableView *)tableView numberOfRowslnSection:(NSInteger)section 2. 3. return 10; 4. -(NSInteger)tableView:(UITableView *)tableView number return 10; (3) - (CGFIoat)tableView:(UITableView *)tableView heightForRowAtl ndexPath:(NSI ndexPath *)i ndexPath;

4、这个方法返回指定的 row的高度。 -(CGFIoat)tableView:(UITableView *)tableView heightForHeaderI nSecti on :(NS In teger)sect ion; 这个方法返回指定的 section的header view 的高度。 -(CGFloat)tableView:(UITableView *)tableView heightForFooterI nSectio n:(NSI nteger)sectio n; 这个方法返回指定的 section的footer view 的高度。 (4) - (UITableViewCell

5、 *)tableView:(UITableView *)tableView cellForRowAtI ndexPath:(NSI ndexPath *)i ndexPath; 返回指定的row的cell。这个地方是比较关键的地方,一般在这个地方来定制各种个性化 的cell元素。这里只是使用最简单最基本 的cell类型。其中有一个主标题cell.textLabel还有一个副标题 cell.detailTextLabel, 还有 一个image在最前头叫 cell.imageView.还可以设置右边的图标,通过cell.accessoryType可以设置是饱满的向右 的蓝色箭头,还是单薄的向右箭

6、头, 还是勾勾标记。 cpp view plaincopyprint? 1. - (UlTableViewCell *)tableView:(UITableView *)tableView cellForRowAtlndexPath:(NSIndexPath *)indexPath 2. 3. static NSString * showUserlnfoCellldentifier = ShowUserlnfoCell; 4. UlTableViewCell * cell = tableView_ dequeueReusableCellWithldentifier:showUserlnfoCe

7、llldentifier; 5. if (cell = nil) 6. 7. / Create a cell to display an ingredient. 8. cell = UlTableViewCell alloc initWithStyle:UITableViewCellStyleSubtitle 9. reuseldentifier:showUserlnfoCellldentifier 10. autorelease; 11. 12. 13. / Configure the cell. 14. cell.textLabel.text=签名; 15. cell.detailText

8、Label.text = NSString stringWithCString:userlnfo.user_signature.c_str() encoding:NSUTF8StringEncoding; 16. 17. -(UlTableViewCell *)tableView:(UITableView *)tableVie static NSString * showUserlnfoCellldentifier = UlTableViewCell * cell = tableView_ dequeueRe if (cell = nil) / Create a cell to display

9、 an ingredi cell = UlTableViewCell alloc initW autorelease; / Configure the cell. cell.textLabel.text= 签名; cell.detailTextLabel.text = NSString stringWi (5) - (CGFIoat)tableView:(UITableView *)tableView heightForHeaderl nSecti on :(NS In teger)sect ion 返回指定的 section 的header的高度 cpp view plaincopyprin

10、t? 1. - (CGFIoat)tableView:(UITableView *)tableView heightForHeaderlnSection:(NSInteger)section 2. 3. if (section =0) 4. return 80.0f; 5. else 6. return 30.0f; 7. -(CGFloat)tableView:(UITableView *)tableView heightFo if (section =0) return 80.0f; else return 30.0f; (6) - (NSString *)tableView:(UITab

11、leView *)tableView titleForHeaderl nSecti on :(NS In teger)sect ion 返回指定的section 的header的title,如果这个 section header 有返回view,那么title 就不起作用了。 cpp view plaincopyprint? 1. - (NSString *)tableView:(UITableView *)tableView titleForHeaderlnSection:(NSInteger)section 2. 3. if (tableView = tableView_) 4. 5. i

12、f (section = 0) 6. 7. return title 1; 8. 9. else if (section = 1) 10. 11. return title 2; 12. 13. else 14. 15. return nil; 16. 17. 18. else 19. 20. return nil; 21. 22. -(NSString *)tableView:(UITableView *)tableView title view SettingHeaderView if (tableView = tableView_) _ if (section = 0) return t

13、itle 1; else if (section = 1) return title 2; else return nil; else return nil; (7) - (UIView *)tableView:(UITableView *)tableView viewForHeaderl nSectio n:(NSI nteger)sectio n 返回指定的 section header 的view,如果没有,这个函数可以不返回 cpp view plaincopyprint? 1. - (UIView *)tableView:(UITableView *)tableView viewFo

14、rHeaderlnSection:(NSInteger)section 2. 3. if (section = 0) 4. 5. 5. UIView* header = NSBundle mainBundle loadNibNamed: 6. owner: self 7. options: nil lastObject; 9. 8. else 9. 10. return nil; 11. 12. -(UlView *)tableView:(UITableView *)tableView viewFor if (section = 0) UIView* header = NSBundle mai

15、nBundl else return nil; (8) - (void)tableView:(UITableView *)tableView didSelectRowAtl ndexPath:(NSI ndexPath *)i ndexPath 当用户选中某个行的cell的时候,回调用这个。但是首先,必须设置tableview的一个属性 为可以select才行。 cpp view plaincopyprint? 1. TableView.allowsSelection=YES; TableView.allowsSelection=YES; cpp view plaincopyprint? 1.

16、 cell.selectionStyle=UITableViewCellSelectionStyleBlue; cell.selectionStyle=UITableViewCellSelectionStyleBlue; 如果不希望响应select,那么就可以用下面的代码设置属性: cpp view plaincopyprint? 1. TableView.allowsSelection=NO; TableView.allowsSelection=NO; 自己做出响应就好啦。 F面是响应select点击函数,根据哪个section,哪个row cpp view plaincopyprint?

17、1. - (void)tableView:(UITableView *)tableView didSelectRowAtlndexPath:(NSIndexPath *)indexPath 2. 3. if (indexPath.section = 1) 4. 5. return; 6. 7. else if(indexPath.section=O) 8. 9. switch (indexPath.row) 10. 11. /聊天 12. case 0: 13. 14. self onTalkToFriendBtn; 15. 16. break; 17. 17. default: 18. br

18、eak; 19. 20. 21. else 22. 23. return ; 24. 26. 27. -(void)tableView:(UITableView *)tableView didSelectRo if (indexPath.section = 1) return; else if(indexPath.section=O) switch (indexPath.row) /聊天 case 0: self onTalkToFriendB break; default: break; 如何让cell能够响应select,但是选中后的颜色又不发生改变呢,那么就设置 cell.selecti

19、o nStyle = UlTableViewCellSelectio nStyleNo ne; cpp view plaincopyprint? 1. - (UlTableViewCell *)tableView:(UITableView *)tableView cellForRowAtlndexPath:(NSIndexPath *)indexPath 2. 3. /cell 被选中后的颜色不变 4. cell.selectionStyle = UlTableViewCellSelectionStyleNone; 5. -(UITableViewCell *)tableView:(UITab

20、leView *)tableVie /cell被选中后的颜色不变 cell.selectionStyle = UITableViewCellSelectionStyl (9 )如何设置tableview 每行之间的 分割线 cpp view plaincopyprint? 1. self.tableView.separatorStyle=UITableViewCellSeparatorStyleSingleLine; self.tableView.separatorStyle=UITableViewCellSeparator 即可。 如果不需要分割线,那么就设置属性为UlTableViewCe

21、llSeparatorStyleN one (10 )如何设置tableview cell的背景颜色 1. - (UlTableViewCell *)tableView:(UITableView *)tableView cellForRowAtlndexPath:(NSIndexPath *)indexPath 2. 3. /设置背景颜色 4. cell.contentView.backgroundColor=UIColor colorWithRed:0.957 green:0.957 blue:0.957 alpha:1; 5. -(UITableViewCell *)tableView:(

22、UITableView *)tableVie /设置背景颜色 cell.contentView.backgroundColor=UICo (11 )- (void)tableView:(UITableView *)tableView accessoryButt on TappedForRowWithI ndexPath:(NSI ndexPath *)i ndexPath 这个函数响应,用户点击cell右边的 箭头(如果有的话) (12 )如何设置tableview可以被编辑 首先要进入编辑模式: cpp view plaincopyprint? 1. TableView setEditing

23、:YES animated:YES; TableView setEditing:YES animated:YES; 如果要退出编辑模式,肯定就是设置为NO -(UlTableViewCellEditi ngStyle)tableView:(UITableView *)tableView editi ngStyleForRowAtl ndexPath:(NSI ndexPath *)i ndexPath 返回当前cell要执行的是哪种编辑,下面的代码是返回删除模式 cpp view plaincopyprint? 1. - (UITableViewCellEditingStyle)tableVi

24、ew:(UITableView *)tableView editingStyleForRowAtlndexPath:(NSIndexPath *)indexPath 2. 3. return UlTableViewCellEditingStyleDelete; 4. -(UITableViewCellEditingStyle)tableView:(UITableView return UITableViewCellEditingStyleDelete; -(void) tableView:(UITableView *)aTableView commitEditingStyle:(UITable

25、ViewCellEditingStyle) editingStyle forRowAtl ndexPath:(NS In dexPath *)i ndexPath 通知告诉用户编辑了哪个cell,对应上面的代码,我们在这个函数里面执行删除cell的操 作。 cpp view plaincopyprint? 1. -(void) tableView:(UITableView *)aTableView 2. commitEditingStyle:(UITableViewCellEditingStyle) editingStyle 3. forRowAtlndexPath:(NSIndexPath

26、*)indexPath 4. 5. chatArray removeObjectAtlndex:indexPath.row; 6. chatTableView reloadData; 7. -(void) tableView:(UITableView *)aTableView commitEditingStyle:(UITableViewCellEditingStyle) editi forRowAtIndexPath:(NSIndexPath *)indexPath chatArray removeObjectAtIndex:indexPath.row chatTableView reloadData; (13 )如何获得某一行的CELL对象 -(UITableViewCell *)cellForRowAtl ndexPath:(NS In dexPath *)i ndexPath; 古希腊哲学大师亚里士多德说:人有两种,一种即 吃饭是为了活着”一种是 活着是为了吃饭”一个人之所以伟大,首先是因为他有超于常人的心。志当存高远”风物长宜放眼量”这些古语

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论