UITableView中Cell点击展开方法
2012-07-02 09:13
381 查看
定义一个属性记录selectedIndexPath用来记录选中的行的indexpath,在视图控制器初始化方法中初始化此属性为nil, 在tableView:didSelectRowAtIndexPath代理方法中: 首先deselect这个行 然后[tableView beginUpdate] if(selectedIndexPath==nil) { selectedIndexPath=indexPath; [tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationAutomatic]; } else{ bool hasSelectedOtherRow=![self.selectedIndexPath isEqualTo:indexPath]; NSIndexPath *temp=self.selectedIndexPath; self.selectedIndexPath=nil; [tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:temp] withRowAnimation:UITableViewRowAnimationAutomatic]; if(hasSelectedOtherRow){ self.selectedIndexPath=indexPath; [tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationAutomatic]; } } [tableView endUpdate]; 在返回行高的代理方法中,如果indexPath等于self.selectedIndexPath, 返回一个特定的高度,否则返回缺省单元格高度。 在返回单元的代理方法中,如果indexPath等于self.selectedIndexPath,返回一个定制的单元(这个特定单元可以在视图控制器的viewdidload方法中初始化,不需要重用)否则返回缺省单元。
相关文章推荐
- UITableView点击展开cell
- 点击UITableView的cell展开收缩
- 实现UITableView中点击不同cell进入不同Controller的方法
- 点击UITableView的cell展开收缩
- 点击UITableView的cell展开收缩
- UITableView点击cell之后进入一个新的viewController界面,在pop回来坐标下移64像素的解决方法
- 点击UITableView的cell展开收缩
- 点击UITableView的cell展开收缩
- 点击UITableView的cell展开收缩
- 点击UITableView的cell展开收缩
- 点击UITableView的cell展开收缩
- 点击UITableView的cell展开收缩
- IOS应用开发11——UITableView的cell点击展开
- 点击UITableView的cell展开收缩
- UITableView的cellForRowAtIndexPath方法被不必要的调用很多次的问题
- UIScrollView在有点击手势的情况下,会导致UITableView的cell点击事件无法响应
- UITableView中Cell重用机制导致内容重复解决方法
- ios UITableView中Cell重用机制导致内容重复解决方法
- iOS点击UITableView的cell,弹出UIAlertController有时会出现延迟
- iOS关闭UITableView中cell的点击事件