UITableView:特殊的滚动视图,横向固定,可以在纵向上滚动,自动计算contentSize

创建tableView,初始化时指定样式,默认是plain

UITableView *_tableView=[[UITableView alloc] initWithFrame:CGRectMake(0, 20, 375, 600) style:UITableViewStylePlain];

与数据源相关的方法都在dataSource的协议方法中

_tableView.dataSource=self;

与ui相关的方法都在delegate的协议方法中

_tableView.delegate=self;

设置每组的数据行数

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;

显示每行数据时都会调用此方法,设置每行数据的显示样式(单元格内容样式),显示单元格,采用了可重用机制,当向上拖动tableView显示新的数据时,(原来的单元格不可见,将其加入到可重用队列中,)每次显示单元格信息时先从可重用队列中取出可重用的单元格,如果没有再自己创建

-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;

设置是否自动调整视图位置

self.automaticallyAdjustsScrollViewInsets=NO;

根据标识符在可重用队列中取出单元格

UITableViewCell* cell=[tableView dequeueReusableCellWithIdentifier:identifier];

设置单元格右侧的箭头样式

cell.accessoryType=UITableViewCellAccessoryDisclosureIndicator;

UITableViewCellAccessoryDisclosureIndicator;//右箭头

UITableViewCellAccessoryDetailButton;//问号

UITableViewCellAccessoryDetailDisclosureButton;//问号加右箭头

UITableViewCellAccessoryCheckmark;//对号

UITableViewCellAccessoryNone;//空

图片,一般在左侧显示

cell.imageView.image=[UIImage imageNamed:@"0.png"];

详细信息

cell.detailTextLabel.text=@"detail";

设置每行的行高:默认是44

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;

当选择某行数据时调用此协议方法

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;

当取消选择某行数据时,

-(void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath;

每个UIViewController都有一个editButtonItem属性,当向它发送editButtonItem消息时会自动创建一个名为edit的UIBarButtonItem对象,自动设定目标-action。自动调用setEditing:animated:方法

self.navigationItem.leftBarButtonItem=self.editButtonItem;

单击导航栏上的edit项时执行此协议方法

-(void)setEditing:(BOOL)editing animated:(BOOL)animated;

设置表视图与edit一样是否处于编辑状态

[_tableView setEditing:editing animated:animated];

section是表视图中每组的编号,从0开始,设置每行的数据行数

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;

设置tableView的分组数

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView;

//设置每组的标题,section是组的编号

-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section;

//对tableView编辑(删除、插入)的操作

-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath;

1、删除数据源中的数据(删除第indexPath.section组中第indexPath.row行的数据

[_dataArray[indexPath.section] removeObjectAtIndex:indexPath.row];

2、刷新表视图,第1个参数是删除的行的indexPath组数,第2个参数是动画效果样式

[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationLeft];

刷新所有的数据

[tableView reloadData];

tableView的编辑状态有UITableViewCellEditingStyleDelete, UITableViewCellEditingStyleInsert, UITableViewCellEditingStyleNone

UI控件之UITableView的基本属性的更多相关文章

  1. UI控件之UITableView的协议方法

    <UITableViewDataSource,UITableViewDelegate> //设置表视图的编辑状态 -(void)setEditing:(BOOL)editing anima ...

  2. AppleWatch___学习笔记(二)UI布局和UI控件

    1.UI布局 直接开发,你会发现Apple Watch并不支持AutoLayout,WatchKit里有个类叫做WKInterfaceGroup,乍一看像是UIView,但是这货其实是用来布局的.从 ...

  3. ios 中的UI控件学习总结(1)

    UIKit框架提供了非常多功能强大又易用的UI控件 下面列举一些在开发中可能用得上的UI控件 UIButton 按钮 UILabel 文本标签 UITextField 文本输入框 UIImageVie ...

  4. 面试题汇总--数据储存/应用程序/UI控件/客户端的安全性与框架处理。。。

    一 数据储存  1.如果后期需要增加数据库中的字段怎么实现,如果不使用 CoreData 呢?编写 SQL 语句来操作原来表中的字段1)增加表字段ALTER TABLE 表名 ADD COLUMN 字 ...

  5. UI控件概述

    常见UI控件 UIKit框架提供了非常多功能强大又易用的UI控件,以便于开发者打造出各式各样的App 以下列举一些在开发中常见的UI控件(稍后补上图片示例) 1.UILabel– 文本标签:作用是显示 ...

  6. iOS-UI控件之UITableView(一)

    UITableView 介绍 UITableView 是用来用列表的形式显示数据的UI控件 举例 QQ好友列表 通讯录 iPhone设置列表 tableView 常见属性 // 设置每一行cell的高 ...

  7. 常用的UI控件

    关于本文:作为一名iOS软件工程师,熟练规范的使用常用的UI控件是必备的基础技能. 指示器(UIActivityIndicatorView)----转动的等待小菊花 提醒对话框(UIAlertView ...

  8. ANDROID L——Material Design详解(UI控件)

    转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! Android L: Google已经确认Android L就是Android Lolli ...

  9. WinForm/Silverlight多线程编程中如何更新UI控件的值

    单线程的winfom程序中,设置一个控件的值是很easy的事情,直接 this.TextBox1.value = "Hello World!";就搞定了,但是如果在一个新线程中这么 ...

随机推荐

  1. stm32开发板无法正常写入的问题或者写入后无法正常运行的问题

    在调试stm32的程序的时候遇到这样一个问题. 用Keil往stm32里写入程序时出现无法访问内存的错误.情况如下 然后 J-link没有提示异常.偶尔可以下载成功,但是程序无法正确的执行. 经过一番 ...

  2. Mongodb 与 MySQL对比

    在数据库存放的数据中,有一种特殊的键值叫做主键,它用于惟一地标识表中的某一条记录.也就是说,一个表不能有多个主键,并且主键不能为空值. 无论是MongoDB还是MySQL,都存在着主键的定义. 对于M ...

  3. [浪风推荐]CURL伪造IP和来源

    给“刷票”的朋友提供了很好的换IP的方案,查了下,CURL确实很强悍的可以伪造IP和来源. 1.php 请求 2.php . 1.php代码: $ch = curl_init(); curl_seto ...

  4. oracle 启动模式

    转载自:http://blog.csdn.net/nsj820/article/details/6573525 <一>.ORACLE数据库启动模式 1.启动SQL*PLUS不与数据库连接 ...

  5. 补装老版本的Java SE

    到oracle注册账号下载bin文件 在bin文件下载目录打开终端复制下面到命令 # chmod +x jdk-6u21-linux-i586.bin 注意版本不同,比如我这次下载到是6u45 chm ...

  6. Classification week2: logistic regression classifier 笔记

    华盛顿大学 machine learning: Classification 笔记. linear classifier 线性分类器 多项式: Logistic regression & 概率 ...

  7. Laravel5.1 模型--ModelFactory

    今天要说的是模型工厂,它是可以快速生成一些测试数据的东西,之前我们介绍过Seeder,当我们使用模型访问数据时 可以用模型工厂搭配Seeder使用. 1 编写一个ModelFactory ModelF ...

  8. 1、easyUI-创建 CRUD普通dataGrid(表格)

    在实现功能之前,我们要做以下几个准备: 分以下几个步骤:开发工具,easyUI包,目录结构,创建数据库,创建相应的页面视图,后台代码编写,优化: 第一步:开发工具 我的开发工具是Hbuild,开发语言 ...

  9. Android之使用Android-query框架进行开发

    开发Android使用Android-query框架能够快速的,比传统开发android所要编写的代码要少得很多,容易阅读等优势. 下载文档及其例子和包的地址:http://code.google.c ...

  10. hoj 2715 (费用流 拆点)

    http://acm.hit.edu.cn/hoj/problem/view?id=2715 将每个格子 i 拆成两个点 i’, i’’并加边(i’, i’’, 1, -Vi), (i’, i’’, ...