摘要:

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. 不越狱安装破解软件,iResign重签名方法

    http://www.baidu.com/s?wd=iresign%E8%BD%AF%E4%BB%B6&rsv_spt=1&issp=1&rsv_bp=0&ie=utf ...

  2. The "Out of socket memory" error

    The "Out of socket memory" error I recently did some work on some of our frontend machines ...

  3. Chapter 7 -- Functional

    Caveats 说明 As of Java 7, functional programming in Java can only be approximated through awkward and ...

  4. Chapter 6 -- Caches

    CachesExplained Explanation for how to use Guava caches. explained Updated Jun 4, 2013 by lowas...@g ...

  5. BZOJ 1093 最大半连通子图 题解

    1093: [ZJOI2007]最大半连通子图 Time Limit: 30 Sec  Memory Limit: 162 MBSubmit: 2767  Solved: 1095[Submit][S ...

  6. 【BZOJ】【4144】【AMPPZ2014】Petrol

    最短路+最小生成树+倍增 图论问题中综合性较强的一题= =(Orz vfk) 比较容易发现,关键的还是有加油站的这些点,其他点都是打酱油的. 也就是说我们重点是要求出 关键点之间的最短路. 这玩意…… ...

  7. linux中的通配符、元字符、转义符

    linux中的通配符.元字符.转义符 linux中的通配符元字符转义符 shell命令的构成 通配符 元字符meta 转义符 example reference shell命令的构成 每条linux命 ...

  8. 二叉树 遍历 先序 中序 后序 深度 广度 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  9. java Field 二三事

    java在反射时候经常用到了 Field 类. 我认为代码是最好的解释,直接上代码. 首先,用到了一个bean类,源代码如下: package com.ncs;      public class P ...

  10. c/c++ 变量作用域

    在程序的不同位置,可能会声明各种不同类型(这里指静态或非静态)的变量.然而,声明的位置不同.类型不同导致每个变量在程序中可以被使用的范围不同.我们把变量在程序中可以使用的有效范围称为变量的作用域. 任 ...