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的更多相关文章

  1. iOS开发tableView去掉顶部上部空表区域

    tableview中的第一个cell 里上部 有空白区域,大概64像素 在viewDidLoad中加入如下代码 self.automaticallyAdjustsScrollViewInsets = ...

  2. iOS中TableView小技巧

    摘要: TableView是ios开发中经经常使用到的控件,这里统一记录一下开发中遇到的经常使用小技巧,不断探索更新.也希望大家能够告诉我很多其它经常使用的小技巧啦~一起进步 1.去除多余的列表线条 ...

  3. ios学习--TableView详细解释

    -.建立 UITableView DataTable = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 420)]; [DataTa ...

  4. [IOS初学]ios 第一篇 storyboard 与viewcontroller的关系

    学习了一下ios,把一个基本的概念搞清楚了,在android或者wp中,大家基本都是习惯与一个画面场景代表一个类,新建场景的时候自动新建了类,但在ios中使用了storyboard之后发现,在stor ...

  5. [IOS 开发] TableView、多个TableViewCell、自定义Cell、Cell上画画(故事板+代码方式)

    第一步: //UserTableViewCell.h这里定义第一种Cell #import <UIKit/UIKit.h> @interface UserTableViewCell : U ...

  6. iOS 在tableView上添加button导致按钮没有点击效果和不能滑动的 zhuang

    转载请注明出处. 今天在调试代码的时候,在tableviewcell上添加button,发现button快速点击的话,是看不出点击效果的,查找资料发现, ios7上UITableViewCell子层容 ...

  7. ul、li模仿ios的TableView实现城市选择

    最近项目一个接着一个,之前说的精创环的项目还没做完,今天说先把那个放一下,先做访客系统,销售会见客户之后可以对客户进行一个跟踪记录,原型图也给了,今日头条的频道自定义页面一样. 如果是在IOS上让我来 ...

  8. iOS 设置tableview头部不可以向下拉动..

    - (void)scrollViewDidScroll:(UIScrollView *)scrollView { CGPoint point = scrollView.contentOffset; i ...

  9. IOS中tableView每组的头部控件、通过tableView的代理方法控制某一行的cell能否达到高亮选中状态

    一.tableView每组的头部控件 1.控件宽度默认就是tableView的宽度 2.控件高度由下面的代理方法决定 - (CGFloat)tableView:(UITableView *)table ...

随机推荐

  1. JAVAEE——SSH项目实战01:SVN介绍、安装和使用方法

    1 学习目标 1.掌握svn服务端.svn客户端.svn eclipse插件安装方法 2.掌握svn的基本使用方法 2 svn介绍 2.1 项目管理中的版本控制问题 通常软件开发由多人协作开发,如果对 ...

  2. maven多模块项目聚合

    参考文档: http://kyfxbl.iteye.com/blog/1680045 http://blog.csdn.net/wanghantong/article/details/36427411 ...

  3. JavaScript第三课 (循环)

    循环语句       !如果至少需要执行一次循环体,就用do … while语句,一般情况下用while语句就可以了. while 语法:一直读取循环到条件为假时停止循环. while(条件) { 语 ...

  4. 打造属于自己的支持版本迭代的Asp.Net Web Api Route

    在目前的主流架构中,我们越来越多的看到web Api的存在,小巧,灵活,基于Http协议,使它在越来越多的微服务项目或者移动项目充当很好的service endpoint. 问题 以Asp.Net W ...

  5. 如何用快速傅里叶变换实现DFT

    [目标]   如何以 \(O(N \log N)\) 的效率将系数多项式转换为点值多项式. [前置技能]   众所周知,\(x^n=1\)的根有n个,而且它们分别是\(e^{\frac{2*π*i}{ ...

  6. DotNetCore跨平台~EFCore连接Mysql的方式

    回到目录 在.net frameworks的ef里连接mysql我们已经测试通过了,而在dotnet core里的efCore上去连接mysql我们需要测试一下,并且在测试过程中出现了一些问题,当然最 ...

  7. PHP面向对象 ——多态

    接口 接口(interface)是抽象方法和静态常量定义的集合. 接口是一种特殊的抽象类,这种抽象类中只包含抽象方法和静态常量. 接口中没有其它类型的内容 接口的定义 /** * 接口可以认为是特殊的 ...

  8. Nginx 502 Bad Gateway

    今天安装完php环境以后,出现这个问题,排查步骤如下: ps -ef|grep php-fpm 发现没有安装php-fpm 然后直接安装php-fpm yum -y install php-fpm 安 ...

  9. 阿里云VPC绑定EIP实现SNAT

    阿里云VPC需要了解的几个问题 什么是VPC 虚拟私有网络(Virtual Private Network),能够帮助用户基于阿里云构建出一个隔离的网络环境.用户可以完全掌控自己的虚拟网络,包括选择自 ...

  10. join和wait

    最近看多线程的时候发现对于join的理解有些错误,在网上查了不少资料,根据自己的理解整理了一下,这里之所以把join和wait放在一起,是因为join的底层实现就是基于wait的,一并讲解更容易理解. ...