##DAY10 UITableView基础

UITableView继承于UIScrollView,可以滚动。

UITableView的每⼀条数据对应的单元格叫做Cell,是UITableViewCell的⼀个对象,继承于UIView。

UITableView可以分区显⽰,每⼀个分区称为section, 每⼀⾏称为row, 编号都从0开始。

系统提供了⼀个专门的类来整合section和row,叫做NSIndexPath。

#pragma mark ———————UITableView基本属性——————————

创建:

initWithFrame:style:

style的两种类型:

UITableViewStylePlain

UITableViewStyleGrouped

UITableView的属性:

rowHeight 设置行高,只能设置全部行高相同的情况

separatorColor 设置分割线的颜色

separatorStyle 设置分割线的风格

tableHeaderView 设置表格头部控件

tableFooterView 设置尾部控件

dataSource 显示数据相关的代理

delegate 视图操作相关的代理

#pragma mark --------UITableViewDataSource----------

tableView:numberOfRowsInSection: 每一组的行数,可以用switch(section)对不同的组进行判断

tableView:cellForRowAtIndexPath: 设置每一行显示怎样的内容(cell),每当有一个cell进入视野范围内,就会调用

numberOfSectionsInTableView:设置组数,不写实现,默认是一组

tableView:titleForHeaderInSection:第section组显示怎样的头部标题,概括这一组是干什么用的

tableView:titleForFooterInSection:第section组显示怎样的尾部标题,详细描述这一组是干什么用的

注意:TA有固定的字体样式。如果你想要不同的东西,使用自定义视图(UILabel)

tableView:canEditRowAtIndexPath: 允许被编辑的行,如果没有实现,所有行被认为是可编辑的。tableView:canMoveRowAtIndexPath: 允许重新排序,默认情况下全部可以

sectionIndexTitlesForTableView: 右侧边栏的索引(e.g. "ABCD...Z#")

tableView:sectionForSectionIndexTitle:atIndex: 设置一个组所对应的标题或索引 (e.g. "B",1)

tableView:commitEditingStyle:forRowAtIndexPath:提交编辑的具体实现

tableView:moveRowAtIndexPath:toIndexPath: 移动行的具体实现

#pragma mark --------UITableViewDelegate----------

点击单元格后触发的方法,跳转、传值都在这个方法中完成

tableView:didSelectRowAtIndexPath:

可变高度

tableView:heightForRowAtIndexPath:

tableView:heightForHeaderInSection:

tableView:heightForFooterInSection:

设置每一组的头视图和尾视图,注意高度,和内存管理autorelease

tableView:viewForHeaderInSection:

tableView:viewForFooterInSection:

其他方法见头文件和API

#pragma mark --------UITableViewCell----------

UITableViewCell的属性:

imageView 图片视图

textLabel 设置cell显示的文字

detailTextLabel 副标题视图

accessoryType 设置右边指示器的类型,下面这个枚举是个 >

accessoryView 自定义附属视图

backgroundView 设置未选中时的背景(背景的view,用init创建,不设置frame)

backgroundColor backgroundView的优先级高于backgroundColor,且前者可设置被选中的状态,后者不可

selectedBackgroundView 设置被选中时的背景

selectionStyle 选中的行的显示风格

cell的创建方法:

initWithStyle:reuseIdentifier:

#pragma mark --------UITableViewCell的重用机制----------

cell的创建方法:

initWithStyle:reuseIdentifier:

tableView的方法:

表视图通过重用标识去重用池中查找是否有能够被重用的cell

dequeueReusableCellWithIdentifier: (forIndexPath:)注意后半截在XIB时用

#pragma mark ------读取数据------

//读取数据

- (void)handleData{

//获取到plist文件在包中的路径

NSString *filePlath = [[NSBundle mainBundle] pathForResource:@"Student" ofType:@"plist"];

//从路径中得到一个数组

NSArray *arr = [NSArray arrayWithContentsOfFile:filePlath];

//初始化模型数组

_modelArr = [[NSMutableArray alloc] initWithCapacity:0];

for (NSDictionary *dic in arr) {

Student *stu = [[Student alloc] init];

[stu setValuesForKeysWithDictionary:dic];

[_modelArr addObject:stu];

[stu release];

}

}

#pragma mark ——————————————建立模型——————————————

异常处理:

1、当使用KVC为模型赋值时,如果模型内部,没有声明相对应字典中的属性时,赋值直接跳过此字段,执行下一字段的赋值

2、如果字典中的关键字是系统保留字,那么在声明属性时会出现与字典关键字不对应,在此方法中就可以完成判断,对应赋值

- (void)setValue:(id)value forUndefinedKey:(NSString *)key{

//内部什么都不做,异常处理,解决赋值个数不匹配的问题

}

##DAY10 UITableView基础的更多相关文章

  1. iOS UI基础-9.0 UITableView基础

    在iOS中,要实现表格数据展示,最常用的做法就是使用UITableView.UITableView继承自UIScrollView,因此支持垂直滚动,而且性能极佳. UITableView有两种样式: ...

  2. UITableView基础入门

    新建一个Single View Application 添加一个空类如下: using System; using UIKit; using Foundation; namespace BasicTa ...

  3. Day10 Python基础之特殊函数(八)

    一些特殊函数 1.递归函数(recursion) 递归函数的定义:在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数. 递归函数的优点:是定义简单,逻辑清晰.理论上,所 ...

  4. Python全栈day10(基础知识练习题)

    一,执行python的两种方式 1,写在脚本里面调用python执行,例如python test.py 2,  输入python在命令行交互执行,例如 python  >>> pri ...

  5. Day10 - Python基础10 socketserver 实现并发

    本节内容: 1.实例tcp的并发 2.看源代码继承关系 3.详解:ThreadingTCPServer的过程 4.tcp和udp的request 不同 5.基于udp的并发实现 1.实例tcp并发 s ...

  6. day10.函数基础及函数参数

    一.函数 功能:包裹一部分代码 实现某一个功能 达成某一个目的 特点: """ 特点:可以反复调用,提高代码的复用性,提高开发效率,便于维护管理 函数基本格式 函数的定义 ...

  7. Swift基础之侧滑Cell显示操作按钮

    好久没写过博客了,今天展示一个UITableView基础的内容侧滑Cell的方法使用,之前写过OC语言的http://blog.csdn.net/hbblzjy/article/details/517 ...

  8. day22 yield的表达式的应用,面向过程编程,内置函数前几个

    Python之路,Day10 = Python基础10 生成器表达式: (i for i in range(10) if i > 5)os.walk(r'文件路径')返回一个迭代器, 第一次ne ...

  9. iOS基础篇(十三)——UITableView(一)重用机制

    UITableView是app开发中常用到的控件,功能很强大,常用于数据的显示.在学习UITableView使用之前,我们先简单了解一下: 1.UITableView的重用机制 UITableView ...

随机推荐

  1. UVA 116 Unidirectional TSP 经典dp题

    题意:找最短路,知道三种行走方式,给出图,求出一条从左边到右边的最短路,且字典序最小. 用dp记忆化搜索的思想来考虑是思路很清晰的,但是困难在如何求出字典序最小的路. 因为左边到右边的字典序最小就必须 ...

  2. [Linux] 解压缩 tar 命令详解

    在Linux环境软件安装过程中通常需要用到解压命令,故在此总结下,以方便以后使用,若有不对之处,欢迎指正.   1. 文件压缩      通过压缩算法将文件的体积缩小,同时会将多个文件合并成至一起方便 ...

  3. linux学习之(四)-用户、组的操作,给文件文件夹设置组,更改目录权限、文件权限

    命令帮助查看: man 命令(查看一个命令的详细帮助信息) 例:man useradd 或者用  -h   格式   命令 -h(查看一个命令的简要帮助) 例:useradd -h 用户: 在user ...

  4. 全国计算机等级考试二级教程-C语言程序设计_第8章_地址和指针

    面试: unsigned int *p1 = &num; int *p2 = &num; #define _CRT_SECURE_NO_WARNINGS #include<std ...

  5. 10个Laravel4开发者必用扩展包

    Laravel是一个新的基于最新PHP版本号语法,支持IoC等设计模式的高速开发框架.眼下最新版本号为4.2,推荐安装PHP版本号5.5+. 本文列举10个基本软件包,都是开发人员使用Laravel框 ...

  6. Angular-UI-Router 学习笔记

    路由 Route 我在 慕课网 学习 AngularJS 为什么用 Route AJAX 请求不会留下 History 记录 用户无法直接通过 URL 进入应用中的指定页面(保存书签.链接分享给朋友) ...

  7. oracle form 触发器执行顺序及键定义[Z]

    1当打开FORM时: (1)PRE-FORM (2)PRE-BLOCK(BLOCK级) (3)WHEN-NEW-FORM-INSTANCE (4)WHEN-NEW-BLOCK-INSTANCE (5) ...

  8. Java数组复制

    System提供了一个静态方法arraycopy(),我们可以使用它来实现数组之间的复制.其函数原型是: public static void arraycopy(Object src, int sr ...

  9. zabbix监控服务器部署

    1.服务器安装lamp环境 [root@monitor ~]# yum  install gcc gcc-c++ autoconf httpd php mysql mysql-server php-m ...

  10. 精读《javascript高级程序设计》笔记一——基本概念

    语法 严格模式 启用严格模式,在脚本顶部或函数内部上方添加"use strict";语句. 数据类型 typeof typeof返回undifined,boolean,number ...