【iOS知识学习】_UITableView简介
UITableView在iOS中估计是用的最多的控件了吧,几乎每个app都会用到。
一、它是一个非常重要的类来在table中展示数据。
1、是一个一维的表;
2、是UIScrollView的一个子类;
3、表可以是静态的或者动态的;
4、通过dataSource 协议和 delegate 协议可以实现很多的个性化定制;
5、即便拥有大量数据也非常有效率。
二、几种UITableView
1、Plain或者Grouped风格
左边是plain风格,就是一行一行的,右边是grouped风格,一块一块的。
这是plain风格的图片
上图是grouped风格
可以看到里面可以设置Table Header Section Header 、Section Footer等属性,
TableHeader、Section Header SectionFooter、Table Footer可以不设置,默认为空;
Section的数值不设置的话默认为1,
2、静态的或者动态的;
3、被分割为一个个section或者不分割
左图是没有section的,默认就是一个section,右图明显可以看出有几块,每一块就是一个section。
三、UITableView协议
一个UITableView需要继承两个协议:delegate 和 dataSource
delegate:控制table如何展示出来;
dataSource:提供在cell里展示的数据;
注:UITableViewController自动设置为UITableView的delegate和dataSource。
1)UITableViewDataSource
- (UITableViewCell *)tableView:(UITableView *)sender cellForRowAtIndexPath:(NSIndexPath *)indexPath{ }
这是一个静态方法,作用就是展示index在某一行的cell,该方法返回值是UITableViewCell(UIView的一个子类);
大括号里的实现内容如下:
UITableViewCell *cell;
cell = [self.tableView dequeueReusableCellWithIdentifier:@“My Table View Cell”];
if (!cell) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle
reuseIdentifier:@“My Table View Cell”];
}
cell.textLabel.text = [self getMyDataForRow:indexPath.row inSection:indexPath.section];
return cell;
该协议可以让用户设置该tableView有多少个Section和多少行,Section的默认值为1;
实现函数如下:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)sender;
- (NSInteger)tableView:(UITableView *)sender numberOfRowsInSection:(NSInteger)section;
其他可选方法大家去详细参看ios开发者文档;
2)UITableViewDelegate
delegate主要是用来控制UITableView是如何显示的,
当tableView的某一行被选中以后,下面的函数将被执行:
- (void)tableView:(UITableView *)sender didSelectRowAtIndexPath:(NSIndexPath *)path
{
// go do something based on information
// about my data structure corresponding to indexPath.row in indexPath.section
}
其他delegate的函数大家自己参考代码。
这边就先不写tableView的某一行的移动、编辑、删除等操作了。有机会再写。
【iOS知识学习】_UITableView简介的更多相关文章
- 【转】【iOS知识学习】_视图控制对象生命周期-init、viewDidLoad、viewWillAppear、viewDidAppear、viewWillDisappear等的区别及用途
原文网址:http://blog.csdn.net/weasleyqi/article/details/8090373 iOS视图控制对象生命周期-init.viewDidLoad.viewWillA ...
- 【iOS知识学习】_iOS沙盒机制
IOS中的沙盒机制(SandBox)是一种安全体系,它规定了应用程序仅仅能在为该应用创建的目录内读取文件,不能够訪问其它地方的内容.全部的非代码文件都保存在这个地方.比方图片.声音.属性列表和文本文件 ...
- 【iOS知识学习】_如何判断手机是否为静音模式
目前我涉及的app要获取系统是否为静音模式,到网上搜了一下,千篇一律的都是一样的,而且都是iOS5.0以前才适应的知识,这个大家去搜一下就会很容易发现,找了很久终于找到一个5.0以后适用的,那位大神的 ...
- 【iOS知识学习】_int、NSInteger、NSUInteger、NSNumber的差别和联系
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/weasleyqi/article/details/33396809 1.首先先了解下NSNumber ...
- 【iOS知识学习】_iOS动态改变TableView Cell高度
在做tableView的时候,我们有时候须要依据cell的高度动态来调整.近期在网上看到一段代码不错.跟大家Share一下. 在 -(UITableViewCell *)tableView:(UITa ...
- 开源中国iOS客户端学习
开源中国iOS客户端学习 续写前言 <开源中国iOS客户端学习>续写前系列博客 http://blog.csdn.net/column/details/xfzl-kykhd.html ...
- 现代3D图形编程学习-基础简介(1) (译)
本书系列 现代3D图形编程学习 基础简介 并不像本书的其他章节,这章内容没有相关的源代码或是项目.本章,我们将讨论向量,图形渲染理论,以及OpenGL. 向量 在阅读这本书的时候,你需要熟悉代数和几何 ...
- AspectJ基础学习之一简介(转载)
AspectJ基础学习之一简介(转载) 一.为什么写这个系列的博客 Aspectj一个易用的.功能强大的aop编程语言.其官网地址是:http://www.eclipse.org/aspectj/ ...
- 毕业设计预习:VHDL入门知识学习(一) VHDL程序基本结构
VHDL入门知识学习(一) VHDL程序基本结构 简介 VHDL程序基本结构 简介 概念: HDL-Hardware Description Language-硬件描述语言-描述硬件电路的功能.信号连 ...
随机推荐
- BZOJ 2300: [HAOI2011]防线修建( 动态凸包 )
离线然后倒着做就变成了支持加点的动态凸包...用平衡树维护上凸壳...时间复杂度O(NlogN) --------------------------------------------------- ...
- Android Gradle配置
解决问题 错误: Could not find the AndroidManifest.xml file, going up from path //打开app build.gradle文件加入以下代 ...
- 原生js写的一个当前年份日期星期和时间的显示
话不多说,所有代码如下: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type& ...
- 射频识别技术漫谈(28)——基于MF1射频卡的酒店门锁设计
电子门锁是现代星级酒店管理电子化.智能化的重要电子设备.相较于传统的机械锁,基于RFID技术的电子门锁使用方便,易于管理,安全性高,可实现对开锁用户的分优先级自动管理,对房间入住信息实现自动统计与报表 ...
- [转]关于HTTP服务器每个客户端2个连接的限制
这两天猫在家里搞一个多线程的断点续传得C#程序,发现同时只能开2个线程下载,其他的线程一律要等待,这样就导致下载大文件时其他线程经常超时,郁闷好久.今天回公司无意中发现了一个帖子,终于真相大白了, 现 ...
- 浅析JQuery中的html(),text(),val()区别
1.HTML html():取得第一个匹配元素的html内容.这个函数不能用于XML文档.但可以用于XHTML文档 html(val):设置每一个匹配元素的html内容.这个函数不能用于XML文档.但 ...
- 再学习sqlhelper
在机房收费重构系统的时候,第一次学习sqlhelper.当时感觉比较简单,没有写博客总结,现在又经过了图书馆的学习,感觉还是有必要写一写的. SqlHelper是一个基于.NETFramework的数 ...
- poj 4044 Score Sequence(暴力)
http://poj.org/problem?id=4044 大致题意:给出两个班级的成绩,先按降序排序,而且没有成绩同样的.然后求连续的最长公共子序列.输出时,先输出最长公共子序列,然后按个位数字递 ...
- 在Attribute Inspector 上显示自定义的控件的属性
FirstColor 跟 CornerRadious 都是新增的显示属性具体实现方法如下: @property(nonatomic,weak)IBInspectable UIColor *firstC ...
- Spring 中拦截器与过滤器的区别
spring 中拦截器 与servlet 的filter 有相似之处.比如二者都是aop 编程思想的体现都能实现权限检查,日志记录等. 不同之处 使用范围不同 Filter 是Servlet 规定的. ...