UITableView 基本使用方法总结
?UITableView ?基本使用方法
?
?
?? ?1. ? 首先,Controller需要实现两个 ?delegate ,分别是 ?UITableViewDelegate 和 ?UITableViewDataSource
?
?? 2.然后 UITableView对象的 delegate要设置为 self。
?
?? 3. 然后就可以实现这些delegate的一些方法拉。
?
?? ? ? (1)- (NSInteger)numberOfSectionsInTableView:(UITableView?*)tableView; ??
?? ? ? ? 这个方法返回 tableview 有多少个section?
?
?? ? ? ?
[cpp]?view plaincopy?
?
?
?? ? ? ? (2)- (NSInteger)tableView:(UITableView?*)table numberOfRowsInSection:(NSInteger)section;
?? ? ? ?这个方法返回 ? 对应的section有多少个元素,也就是多少行。
?? ? ? ?
[cpp]?view plaincopy?
?
?
?? ? ? ? (3)- (CGFloat)tableView:(UITableView?*)tableView heightForRowAtIndexPath:(NSIndexPath*)indexPath;
?? ? ? ? ? ? ? ? ?这个方法返回指定的 row 的高度。
?? ? ? ? ? ? ? ?- (CGFloat)tableView:(UITableView?*)tableView heightForHeaderInSection:(NSInteger)section;
?? ? ? ? ? ? ? ? ?这个方法返回指定的 section的header view 的高度。
?? ? ? ? ? ? ? ?- (CGFloat)tableView:(UITableView?*)tableView heightForFooterInSection:(NSInteger)section;
?? ? ? ? ? ? ? ? ?这个方法返回指定的 section的footer view 的高度。
?
?? ? ? ? ?(4)- (UITableViewCell?*)tableView:(UITableView?*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath;
?? ? ? ? ? ? ? ?返回指定的row 的cell。这个地方是比较关键的地方,一般在这个地方来定制各种个性化的 cell元素。这里只是使用最简单最基本
?? ? ? ? ? ? ? ?的cell 类型。其中有一个主标题 cell.textLabel 还有一个副标题cell.detailTextLabel, ?还有一个 image在最前头 叫?
?? ? ? ? ? ? ? ?cell.imageView. ?还可以设置右边的图标,通过cell.accessoryType?可以设置是饱满的向右的蓝色箭头,还是单薄的向右箭头,
?? ? ? ? ? ? ? ?还是勾勾标记。 ?
?
?? ? ? ? ? ? ??
[cpp]?view plaincopy?
?
?
?
?? ? ? ? ? ? (5)- (CGFloat)tableView:(UITableView?*)tableView heightForHeaderInSection:(NSInteger)section
?? ? ? ? ? ? ? 返回指定的 section 的header的高度
?
?? ? ? ? ? ? ? ?
[cpp]?view plaincopy?
?
?
?? ? ? ? ? ? ?(6)- (NSString?*)tableView:(UITableView?*)tableView titleForHeaderInSection:(NSInteger)section
?? ? ? ? ? ? ? 返回指定的section 的 header ?的 title,如果这个section header ?有返回view,那么title就不起作用了。
?
?? ? ? ? ? ? ? ?
[cpp]?view plaincopy?
?
?
?? ? ? ? ? ? ?(7)?- (UIView?*)tableView:(UITableView?*)tableView viewForHeaderInSection:(NSInteger)section
?? ? ? ? ? ? ? ? ?返回指定的 section header 的view,如果没有,这个函数可以不返回view
?? ? ? ? ? ? ? ?
[cpp]?view plaincopy?
?
?
?? ? ? ? ? ? ?(8) ?- (void)tableView:(UITableView?*)tableView didSelectRowAtIndexPath:(NSIndexPath?*)indexPath
?
?? ? ? ? ? ? ? 当用户选中某个行的cell的时候,回调用这个。但是首先,必须设置tableview的一个属性为可以select 才行。
?
?
?? ? ? ? ? ? ?
[cpp]?view plaincopy?
?
?
?? ? ? ? ? ? ??
[cpp]?view plaincopy?
?
?? ? ? ? ? ? ?如果不希望响应select,那么就可以用下面的代码设置属性:
?? ? ? ? ? ? ?
[cpp] view plaincopy?
?
?? ? ? ? ? ? ?下面是响应select 点击函数,根据哪个section,哪个row 自己做出响应就好啦。
?? ? ? ? ? ? ?
[cpp]?view plaincopy?
?
?
?? ? ? ? ? ? ?如何让cell 能够响应 select,但是选中后的颜色又不发生改变呢,那么就设置?
?? ? ? ? ? ? ?cell.selectionStyle?=?UITableViewCellSelectionStyleNone;
?? ? ? ? ? ? ?
[cpp]?view plaincopy?
?
?
?? ? ? ? ? ?(9)如何设置tableview ?每行之间的 分割线
?? ? ? ? ? ? ?
[cpp]?view plaincopy?
?
?? ? ? ? ? ? ? 如果不需要分割线,那么就设置属性为?UITableViewCellSeparatorStyleNone ?即可。
?
?
?? ? ? ? ? ? (10)如何设置 tableview cell的背景颜色
?? ? ? ? ? ? ?
[cpp]?view plaincopy?
?
?
?? ? ? ? ? ? (11)?- (void)tableView:(UITableView?*)tableView?accessoryButtonTappedForRowWithIndexPath:(NSIndexPath?*)indexPath
?
?? ? ? ? ? ? ? 这个函数响应,用户点击cell 右边的 箭头(如果有的话)
?
?
?? ? ? ? ? ?(12)如何设置tableview 可以被编辑
?? ? ? ? ? ? ? 首先要进入编辑模式:
?? ? ? ? ? ? ?
[cpp]?view plaincopy?
?
?? ? ? ? ? ? ? 如果要退出编辑模式,肯定就是设置为NO
?
?? ? ? ? ? ? ? ?- (UITableViewCellEditingStyle)tableView:(UITableView?*)tableView editingStyleForRowAtIndexPath:(NSIndexPath?*)indexPath
?? ? ? ? ? ? ? ?返回当前cell ?要执行的是哪种编辑,下面的代码是 返回 删除 ?模式
?? ? ? ? ? ? ?
[cpp]?view plaincopy?
?
?
?? ? ? ? ? ? ?-(void) tableView:(UITableView?*)aTableView
commitEditingStyle:(UITableViewCellEditingStyle) editingStyle
forRowAtIndexPath:(NSIndexPath?*)indexPath
?? ? ? ? ? ? ?通知告诉用户编辑了 哪个cell,对应上面的代码,我们在这个函数里面执行删除cell的操作。
?
?
?? ? ? ? ? ? ?
[cpp]?view plaincopy?
?
?
?
?? ? ? ? ? ? (13)如何获得 某一行的CELL对象
?
?? ? ? ? ? ? ??- (UITableViewCell?*)cellForRowAtIndexPath:(NSIndexPath?*)indexPath;