摘要:

TableView是ios开发中经经常使用到的控件,这里统一记录一下开发中遇到的经常使用小技巧,不断探索更新。也希望大家能够告诉我很多其它经常使用的小技巧啦~一起进步

1、去除多余的列表线条

原始的TableView在没有数据的行也会显示一条条的线条,不太美观,用一行代码能够解决,一般放在ViewDidLoad中

self.tableView.tableFooterView = [[UIView alloc] init];

详细原理还没弄懂。知道的麻烦不吝赐教一下~

2、选中列表条目后取消选中的背景颜色

不处理的情况下。选中一行后,该行会保持被选中的背景色。一般我们不希望其保持,而是一闪而过告知用户选中过就好了,在TableView的Delegate方法中实现:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[tableView deselectRowAtIndexPath:indexPath animated:YES];// 选中后取消选中的颜色
}

3、滑动列表时收起键盘

一般列表都会伴随着搜索框或其它输入框,我们在输入时弹出键盘。可是滑动列表时就表示我已经输入完成了。不希望键盘保持在界面上,而是自己主动收起,相同是在TableView的Delegate方法中实现,可是是用的ScrollView的方法。让搜索框之类的放弃第一响应就可以:

// 滑动时收起搜索框的键盘
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
[self.searchBar resignFirstResponder];
}

4、去掉NavigationController下的TableView顶部出现的空白区域

iOS 7 中viewcontroller新增了属性automaticallyAdjustsScrollViewInsets。即是否依据按所在界面的navigationbar与tabbar的高度,自己主动调整scrollview的 inset,把它设置为NO就好了:

self.automaticallyAdjustsScrollViewInsets = NO;

5、设置cell不可点击

有时候我们的列表仅仅是为了展示某些内容,而不须要用户点击,也不希望用户点击。尽管上面第二条能够设置点击后取消选中。可是还是会有一个动画效果存在。这种方法能够让点击彻底没有效果,明白地告诉用户不能点击列表:

[cell setSelectionStyle:UITableViewCellSelectionStyleNone];

6、依据indexPath获取相应的cell

我们想要获取或者改动cell中的信息时。往往须要获取cell,在tableview的delegate中,我们一般仅仅能获取到indexPath这个參数。通过下面方法能够获取到相应的cell:

UITableViewCell *cell = [self tableView:tableView cellForRowAtIndexPath:indexPath];

7、为cell设置不同高度

常规情况下,我们的cell都是相同的高度的,可是一些特殊情况下,比方cell内有一个label,这个label显示的内容是依据文字长度变换label高度的,这时我们不能单单变换label的高度。还要对应的改变cell的高度。才干正确地显示内容。通过下面方法动态地设置cell高度:

// 首先依据内容改动cell高度
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
……
// 获取cell的frame
CGRect cellFrame = [cell frame]; // 依据内容改变cell高度 ……
// …… // 改动cell的frame
[cell setFrame:cellFrame]; return cell;
} // 别忘了这里也要变
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [self tableView:tableView cellForRowAtIndexPath:indexPath];
return cell.frame.size.height;
}

8、设置cell下方无切割线

假设我们想自己设计cell之间的切割线。就须要把cell之间的切割线所有去掉,通过以下的代码去除cell的切割线:

self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

9、设置section标题文字

section支持直接定义标题文字,尽管不太好看。但能够满足主要的需求:

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
return @"标题";
}

持续探索更新中...

转载请注明出处,谢谢

iOS中TableView小技巧的更多相关文章

  1. ios 中的小技巧 - 总有你想要的 一

    UITableView的Group样式下顶部空白处理 在viewWillAppear里面添加如下代码: //分组列表头部空白处理 CGRect frame = myTableView.tableHea ...

  2. ios 关于tableview小技巧

    第一个:cell中的分割线不顶头 首先在viewDidLoad方法加入以下代码: if ([self.tableView respondsToSelector:@selector(setSeparat ...

  3. ios开发中的小技巧

    在这里总结一些iOS开发中的小技巧,能大大方便我们的开发,持续更新. UITableView的Group样式下顶部空白处理 //分组列表头部空白处理 UIView *view = [[UIViewal ...

  4. IOS中图片拉伸技巧与方法总结(转载)

    以下内容转载自:http://my.oschina.net/u/2340880/blog/403996 IOS中图片拉伸技巧与方法总结 一.了解几个图像拉伸的函数和方法 1.直接拉伸法 简单暴力,却是 ...

  5. lua学习笔记11:lua中的小技巧

    lua中的小技巧,即基础lua语言本身的特种,进行一个些简化的操作 一. 巧用or x = x or v 等价于: if not x then x = v end 假设x为nil或false,就给他赋 ...

  6. 杂谈---小故事小道理,面试中的小技巧(NO.2)

    本篇是接着上一篇面试随笔的,上一次有猿友反应写的有些“扯淡”,LZ思来想去最大的原因可能是由于上一章写的全是一些大忌,既然是大忌,那么在现实当中发生的概率还是相对较小的,大部分人还是很少在面试中犯如此 ...

  7. iOS开发中调试小技巧

    对于软件开发而言,调试是必须学会的技能,重要性不言而喻.对于调试的技能,基本上是可以迁移的,也就是说你以前在其他平台上掌握的很多调试技巧,很多也是可以用在iOS开发中.不同语言.不同IDE.不同平台的 ...

  8. iOS - 开发中调试小技巧

    对于软件开发而言,调试是必须学会的技能,重要性不言而喻.对于调试的技能,基本上是可以迁移的,也就是说你以前在其他平台上掌握的很多调试技巧,很多也是可以用在iOS开发中.不同语言.不同IDE.不同平台的 ...

  9. iOS 知识-常用小技巧大杂烩

    原文链接:http://www.jianshu.com/p/7c3ee5e67d03. 自己看的. 1,打印View所有子视图 po [[self view]recursiveDescription] ...

随机推荐

  1. Spring Boot中application.yml与bootstrap.yml的区别(转载)

    说明:其实yml和properties文件是一样的原理,主要是说明application和bootstrap的加载顺序.且一个项目上要么yml或者properties,二选一的存在. Bootstra ...

  2. Chapter 3 -- Ordering

    Guava's fluent comparator class, Ordering, explained. explained Updated Jun 27, 2013 by cpov...@goog ...

  3. 数据库实例: STOREBOOK > 数据文件/退回字段/重做日志组|管理员

    ylbtech-Oracle:数据库实例: STOREBOOK  > 数据文件/退回字段/重做日志组|管理员 数据文件/退回字段/重做日志组|管理员 1. 数据库实例: STOREBOOK  & ...

  4. Log4cplus使用指南

    1.  Log4cplus简介 log4cplus是C++编写的开源的日志系统,前身是java编写的log4j系统,受Apache Software License保护,作者是Tad E. Smith ...

  5. go语言之进阶篇字符串转换

    1.字符串转换 示例: package main import ( "fmt" "strconv" ) func main() { //转换为字符串后追加到字节 ...

  6. sql server 由于登入失败而无法启动服务

    到控制面板——管理工具——服务,找到mssqlserver这个服务,在属性里把登陆帐户改成你目前登录windows的帐户或选择本地系统账户再重新启动服务就好了

  7. Hadoop基本介绍

    1.Hadoop的整体框架 Hadoop由HDFS.MapReduce.HBase.Hive和ZooKeeper等成员组成,其中最基础最重要元素为底层用于存储集群中所有存储节点文件的文件系统HDFS( ...

  8. 网站设计之合理架构CSS

    架构CSS 在当前浏览器普遍支持的前提下,css被我们赋予了前所未有的使命.然而依赖css越多,样式表文件就会变得越大越复杂.与此同时,文件维护和组织的考验也随之而来. (曾几何时)只要一个css文件 ...

  9. 【Kafka】Kafka-数据倾斜问题-参考资料-解决方案

    Kafka-数据倾斜问题-参考资料-解决方案 Spark Master at spark://node-01:7077 kafka 多线程producer 数据 不均匀_百度搜索 kafka 分片使用 ...

  10. grunt-cmd-transport提取deps[]的BUG

    该BUG已经在GitHub上提了issue,详见:#56 文件 // employee/static/adder.js define(function (require, exports) { exp ...