tableView的一些用法(持续更新)
来源:互联网 发布:怎么测试网络丢包率 编辑:程序博客网 时间:2024/05/19 15:39
1、 继承ViewController 时,选中的cell 跳转页面后返回还是出现刚才选中的选中色,我们可以通过以下代码消除cell选择痕迹:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ //跳转页面的代码 //消除cell选择痕迹 [self performSelector:@selector(deselect) withObject:nil afterDelay:0.5f];}- (void)deselect{ [self.tableView deselectRowAtIndexPath:[self.tableView indexPathForSelectedRow] animated:YES];}
2、指定的位置刷新。通常,我们用reloadData 刷新tableview,但是,有的时候有多个section,只想刷新指定的section 或者指定的cell ,则可以用以下代码实现:
//一个section刷新 NSIndexSet *indexSet=[[NSIndexSet alloc]initWithIndex:2]; [tableview reloadSections:indexSet withRowAnimation:UITableViewRowAnimationAutomatic]; //一个cell刷新 NSIndexPath *indexPath=[NSIndexPath indexPathForRow:3 inSection:0]; [tableView reloadRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath,nil] withRowAnimation:UITableViewRowAnimationNone];
原文链接http://leopard168.blog.163.com/blog/static/16847184420148229221893/
3、tableView header悬停的方法:
把 UITableView 的 style 属性设置为 Plain ,这个tableview的section header在滚动时会默认悬停在界面顶端。
如果想取消悬停效果,可以采用如下2种方法
- 修改 UITableView 的 style 属性设置为 Grouped. 这时所有的section header都会随着scrollview滚动了。不过 grouped 和 plain 的样式有轻微区别,切换样式后也许需要重新调整UI。
- 如果需要使用 Grouped 这种样式, 也可以通过重载 scrollView 的 delegate 来达到目的:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView { CGFloat sectionHeaderHeight = 40; if (scrollView.contentOffset.y <= sectionHeaderHeight && scrollView.contentOffset.y > =0) { scrollView.contentInset = UIEdgeInsetsMake(-scrollView.contentOffset.y, 0, 0, 0); } else if (scrollView.contentOffset.y >= sectionHeaderHeight) { scrollView.contentInset = UIEdgeInsetsMake(-sectionHeaderHeight, 0, 0, 0); }}
原文链接:http://www.jianshu.com/p/2bb137b15435
我尝试了第二种,使用grouped的样式,重写了- (void)scrollViewDidScroll:(UIScrollView *)scrollView;方法,但是没法实现,最终我在上一个section添加了一个footer,给了灰色的UIView,一样达到group的效果,有哪位朋友实现了grouped样式,实现了悬停的效果,麻烦教我一下。
4、设置group类型tableview的section间距
【转】http://blog.csdn.net/rbyyyblog/article/details/20062557?utm_source=tuicool&utm_medium=referral
在ios7中使用group类型的tableview时,第一个section距离navigationbar的距离很大,不符合这边的设计图。使用 myTableView . sectionHeaderHeight = 8.0无效。 于是通过各种方法测试,终于得到解决方法。就是通过设置tableview的headerview高度来控制这个距离。使用的方法是:
- ( CGFloat )tableView:( UITableView *)tableView heightForHeaderInSection:( NSInteger )section{ return 8.0 ;}
但对于第一个和第二个section之间的距离设置则不能使用- ( float )tableView:( UITableView *)tableView heightForFooterInSection:( NSInteger )section这个方法。需要使用
myTableView . sectionFooterHeight = 1.0。
这个距离的计算是header的高度加上footer的高度。
5、 去除多余的分割线
self.tableView.tableFooterView=[[UIView alloc]init];
6、修改tableView 分割线的颜色
[tableview setSeparatorColor:[UIColor blueColor]]; //设置分割线为蓝色
7、tableViewCell 分割线的延长或缩短
系统自带的cell分割线有时不满足我们的需求,或增长,或剪短,这时候我们可以通过设置分割线的偏移来达到我们想要的效果。
// 将分割线 增长_myTableView.separatorInset = UIEdgeInsetsMake(0, 16, 0, 0);
8、去掉分割线
自带是有分割线的,当我们不想要分割线时,应该怎么操作呢?
_myTableView.separatorStyle = UITableViewCellSelectionStyleNone; // 去除掉分割线
9、自定义cell的点击背景色
通过 selectedBackgroundView 给 cell 一个自定义点击之后看到的View
// 设置 cell 点击时的背景颜色 UIView *view_bg = [[UIView alloc]initWithFrame:cell.frame]; view_bg.backgroundColor = [UIColor colorWithRed:178/255.0 green:34/255.0 blue:34/255.0 alpha:0.7]; // 将设置的 选择的背景 为UIVIEW cell.selectedBackgroundView = view_bg;
2017.03.04修改
- tableView的一些用法(持续更新)
- 有关TableView的一些小杂碎(持续更新)
- JAVA的一些基础(持续更新)
- 一些有意思的网站(持续更新)
- Cocosbuilder的一些tips(持续更新)
- 一些有用的链接(持续更新)
- Cocosbuilder的一些tips(持续更新)
- 一些优秀的网站(持续更新)
- 罕见的C用法(持续更新)
- UINavigation的一些常用用法(持续更新-2016年10月27日)
- const 的用法(持续更新)
- 一些演讲(持续更新)
- 一些感动(持续更新)
- 一些笔记。(持续更新)
- 一些简称(持续更新)
- ABAP report常用的一些语句用法(包括字符串操作,变量动态操作)(持续更新)
- Swift的一些网络上的资源(持续更新)
- 收集的一些有意思的网站(持续更新)
- 【BDD】calabash 和 cucumber的使用
- Android Studio简单使用2
- L2-3. 月饼
- oracle 使用随笔
- DQL
- tableView的一些用法(持续更新)
- RGMII布线指导 RGMII Layout Guide
- Arduino 高级教程 01:基础篇
- Handler+ExecutorService(线程池)+MessageQueue模式+缓存模式
- JS正则表达式详解
- 剑指offer之面试题27二叉搜索树与双向链表
- 基于common-fileupload实现文件上传
- 读书笔记(UIKit性能优化解析和Block经典实用)(一)
- Proguard 不要混淆内部类