初学IOS之TableView
PS:tableview作为IOS的UI界面的重点,今天我只学习一部分,在下文列出。
下文我以创建省份为例子,用纯代码的方式创建,但是并不是最优代码,仅作熟悉tableview的创建使用。
--------------------------------------------------------------------------------------------------------
step 1:在viewDidLoad中添加以下代码
//实例化一个tableview对象,其中self.view.bounds能够使tableview和控制器的view大小相同,tableview分两种style,第一种是UITableViewGrouped,分组表,第二种是plain table,
无格式表。如果在无格式表中加了索引,就成了索引表
UITableView * tableview = [[UITableView alloc]initWithFrame:self.view.bounds style:UITableViewStyleGrouped];
//设置tablview的代理 ,需要遵循协议-----><UITableViewDataSource,UITableViewDelegate>
tableview.dataSource = self;
//加载到控制器中
[self.view addSubview:tableview];
//创建一个字典数组
_allCities =@[
@{
@"cities":@[@"广州",@"东莞",@"深证",@"珠海"],
@"header":@"广东",
@"footer":@"广东很不错"
},
@{
@"cities":@[@"杭州",@"宁波",@"温州",@"台州"],
@"header":@"浙江",
@"footer":@"浙江还可以"
},
@{
@"cities":@[@"南京",@"无锡",@"苏州",@"常州"],
@"header":@"江苏",
@"footer":@"江苏不错"
},
];
step 2:一共有多少组
#pragma mark 一共有多少组 section==组
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return _allCities.count;
}
step 3:每组多少行
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
NSDictionary *dic = _allCities[section];
NSArray *arr = dic[@"cities"];
return arr.count;
}
step 4: 为每行的cell单元添加文字
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell * cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil];
NSDictionary *dic = _allCities[indexPath.section];
NSArray *arr = dic[@"cities"];
cell.textLabel.text = arr[indexPath.row];
return cell;
}
step 5:为组添加表头,表脚
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
NSDictionary *dic = _allCities[section];
return dic[@"header"];
}
- (NSString *) tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section
{
return _allCities[section][@"footer "];
}
//以下是结果

//以下是总结

初学IOS之TableView的更多相关文章
- iOS开发tableView去掉顶部上部空表区域
tableview中的第一个cell 里上部 有空白区域,大概64像素 在viewDidLoad中加入如下代码 self.automaticallyAdjustsScrollViewInsets = ...
- iOS中TableView小技巧
摘要: TableView是ios开发中经经常使用到的控件,这里统一记录一下开发中遇到的经常使用小技巧,不断探索更新.也希望大家能够告诉我很多其它经常使用的小技巧啦~一起进步 1.去除多余的列表线条 ...
- ios学习--TableView详细解释
-.建立 UITableView DataTable = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 420)]; [DataTa ...
- [IOS初学]ios 第一篇 storyboard 与viewcontroller的关系
学习了一下ios,把一个基本的概念搞清楚了,在android或者wp中,大家基本都是习惯与一个画面场景代表一个类,新建场景的时候自动新建了类,但在ios中使用了storyboard之后发现,在stor ...
- [IOS 开发] TableView、多个TableViewCell、自定义Cell、Cell上画画(故事板+代码方式)
第一步: //UserTableViewCell.h这里定义第一种Cell #import <UIKit/UIKit.h> @interface UserTableViewCell : U ...
- iOS 在tableView上添加button导致按钮没有点击效果和不能滑动的 zhuang
转载请注明出处. 今天在调试代码的时候,在tableviewcell上添加button,发现button快速点击的话,是看不出点击效果的,查找资料发现, ios7上UITableViewCell子层容 ...
- ul、li模仿ios的TableView实现城市选择
最近项目一个接着一个,之前说的精创环的项目还没做完,今天说先把那个放一下,先做访客系统,销售会见客户之后可以对客户进行一个跟踪记录,原型图也给了,今日头条的频道自定义页面一样. 如果是在IOS上让我来 ...
- iOS 设置tableview头部不可以向下拉动..
- (void)scrollViewDidScroll:(UIScrollView *)scrollView { CGPoint point = scrollView.contentOffset; i ...
- IOS中tableView每组的头部控件、通过tableView的代理方法控制某一行的cell能否达到高亮选中状态
一.tableView每组的头部控件 1.控件宽度默认就是tableView的宽度 2.控件高度由下面的代理方法决定 - (CGFloat)tableView:(UITableView *)table ...
随机推荐
- Jquery-鼠标事件
鼠标事件是在用户移动鼠标光标或者使用任意鼠标键点击时触发的.(1):click事件:click事件于用户在元素敲击鼠标左键,并在相同元素上松开左键时触发. $('p').click(fu ...
- 微信小程序开发者注册流程
一,首先打开浏览器,搜索微信公众平台 点击进入,此时还没有注册微信小程序开发账号,我们需要点击注册 进入注册页面,会出现四种账号,我们选择小程序账号 然后根据提示就可以进行注册了 注册时,需填写一下个 ...
- Linux系统介绍
类似Windows, Linux也是一个操作系统,Linux是一套开放源代码程序,并可以自由传播的类Unix操作系统软件,多用户,多任务并且支持多线程和多CPU的操作系统. Linux系统主要被应用于 ...
- mybatis和spring整合
参考文档: http://www.cnblogs.com/jyh317/p/3834142.html http://www.cnblogs.com/xdp-gacl/p/4271627.html ht ...
- win7-x64安装mysql5.7.11(官方zip版)
1.下载官方安装包(http://www.mysql.com/downloads/),此zip包是没有安装器的(*.msi),也没有辅助配置的自动程序. 2.解压zip包,将文件放入指定目录,如:D: ...
- C/C++中对链表操作的理解&&实例分析
链表概述 链表是一种常见的重要的数据结构.它是动态地进行存储分配的一种结构.它可以根据需要开辟内存单元.链表有一个“头指针”变量,以head表示,它存放一个地址.该地址指向一个元素.链表中每一个元素称 ...
- vue.js 生命周期
boforeCreate 创建之前 created 创建之后 boforeMount 实例化之前 mounted 实例化之后 话不多说,直接上代码 & ...
- Bootstrap提示框
前面的话 提示框是一个比较常见的功能,一般来说是鼠标移动到特定元素上时,显示相关的提示语.本文将详细介绍Bootstrap提示框 基本用法 Bootstrap框架中的提示框,结构非常简单,常常使用的是 ...
- Apache的作用及意义
Apache服务器只是作为一个转接url的服务器,根据客户端发送的url,转接到对应的运行服务器(比如:tomcat自带的服务器)中进行相应的运行操作. 使用Apache的好处,可以隐藏掉运行服务的u ...
- MyBatis的关联关系补充 多对多 继承
多对多 一个学生有多个课程 一个课程有多个学生 思路分析 :使用一个中间表 用学生表和课程表的主键作为中间表的联合主键 1数据库表的设计 课程表 学生表 中间表 2/实体类的设计 课程类 public ...