UITableView的使用样例(简易向)
功能实现
- 构建一个UITableView,并使其默认显示a,b,c……..
- 构建一个按钮,点击后列表变为英文字母
- 构建一个按钮,点击后列表变为数字
基本概念
- 实现前头文件需要签订协议(如何签订向后看)UITableViewDateSource,UITableViewDelegate
- 实现UITableView必须实现的两个方法
返回:
UITableView中的section总行数
参数:
section:表示section下标
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
返回:
UITableView所有单元格(虽然在方法中是返回其中之一个单元格,但程序中它可以通过indexPath参数从0到最后循环运行下去)
参数:
indexPath:表示行的下标,可利用来读取数组的制定数据
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
实现过程
1.在storyboard拖拽一个UITableView,两个UIButton,然后做好相关的参数设置(签订协议不要忘了)。
实现:签订协议
@interface ViewController : UIViewController<UITableViewDataSource,UITableViewDelegate>
@end
实现:定义变量
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UITableView *tvTable;
@property (strong, nonatomic) NSMutableString * string;
@end
2.viewDidLoad方法的实现
实现:string的先初始化为英文字母的字符串
-(void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
self.string = [[NSMutableString alloc]init];
for (int i = 0; i < 26; i ++) {
[self.string appendFormat:@"%c",'a'+i ];//字符串末尾加上一个字符
}
[self.tvTable setDataSource:self];
[self.tvTable setDelegate:self];
}
3.实现两个必须实现的方法
实现:
UITableView设定单元格个数为20个
将string字符串中的数据输入单元格
//返回单元格的数量
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 20;
}
//创建单元格
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(nonnull NSIndexPath *)indexPath
{
static NSString *identifier = @"myCell";
UITableViewCell *cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
cell.textLabel.text = [NSString stringWithFormat:@"%c",[self.string characterAtIndex:indexPath.row]];
return cell;
}
4.实现两个按键的action
- (IBAction)eventChange2Words:(UIButton *)sender {
self.string = [NSMutableString stringWithFormat:@""];
for (int i = 0; i < 26; i ++) {
[self.string appendFormat:@"%c",'a'+i ];
}
[self.tvTable reloadData];
}
- (IBAction)eventChange2Nums:(UIButton *)sender {
self.string = [NSMutableString stringWithFormat:@""];
for (int i = 0; i < 26; i ++) {
[self.string appendFormat:@"%c",'0'+(i%10) ];
}
[self.tvTable reloadData];
}
样例结果
图中显示的是显示字母的功能,显示数字的功能其实大同小异,请自行脑补
已知缺陷
- 如果string长度小于20时程序会崩溃,因为在 - (UITableViewCell )tableView:(UITableView )tableView cellForRowAtIndexPath:(nonnull NSIndexPath *)indexPath中访问时访问string字符串的下标从0到19
- 你们不觉得这好丑么。。。。。
推荐阅读
OS开发系列–UITableView全面解析
http://www.cnblogs.com/kenshincui/p/3931948.html#uiTableViewCell
UITableView的使用样例(简易向)的更多相关文章
- excel vlookup简易样例【原】
vlookup功能 vlookup主要用来做映射,就像java的map一样. 比如我要找id为2的学生对应的名字,那么在F7单元格录入=VLOOKUP(E7,$A$2:$B$4,2,FALSE) 实际 ...
- [hadoop系列]Pig的安装和简单演示样例
inkfish原创,请勿商业性质转载,转载请注明来源(http://blog.csdn.net/inkfish ).(来源:http://blog.csdn.net/inkfish) Pig是Yaho ...
- 第一节:.Net版基于WebSocket的聊天室样例
一. 说在前面的话 该篇文章为实时通讯系列的第一节,基于WebSocket编写了一个简易版聊天样例,主要作用是为引出后面SignalR系列的用法及其强大方便之处,通过这个样例与后续的SignalR对比 ...
- Ext JS学习第十六天 事件机制event(一) DotNet进阶系列(持续更新) 第一节:.Net版基于WebSocket的聊天室样例 第十五节:深入理解async和await的作用及各种适用场景和用法 第十五节:深入理解async和await的作用及各种适用场景和用法 前端自动化准备和详细配置(NVM、NPM/CNPM、NodeJs、NRM、WebPack、Gulp/Grunt、G
code&monkey Ext JS学习第十六天 事件机制event(一) 此文用来记录学习笔记: 休息了好几天,从今天开始继续保持更新,鞭策自己学习 今天我们来说一说什么是事件,对于事件 ...
- 【阿菜做实践】利用go语言写一个简单的Pow样例
本篇博客的主要内容是用go写一个简单的Proof-of-Work共识机制,不涉及到网络通信环节,只是一个本地的简单demo.开发IDE用的是JB Golang. 整个项目的文件结构如下: PoWdem ...
- C++的性能C#的产能?! - .Net Native 系列《三》:.NET Native部署测试方案及样例
之前一文<c++的性能, c#的产能?!鱼和熊掌可以兼得,.NET NATIVE初窥> 获得很多朋友支持和鼓励,也更让我坚定做这项技术的推广者,希望能让更多的朋友了解这项技术,于是先从官方 ...
- MarkDown+LaTex 数学内容编辑样例收集
$\color{green}{MarkDown+LaTex 数学内容编辑样例收集}$ 1.大小标题的居中,大小,颜色 [例1] $\color{Blue}{一元二次方程根的分布}$ $\color{R ...
- 33个超级有用必须要收藏的PHP代码样例
作为一个正常的程序员,会好几种语言是十分正常的,相信大部分程序员也都会编写几句PHP程序,如果是WEB程序员,PHP一定是必备的,即使你没用开发过大型软件项目,也一定多少了解它的语法. 在PHP的流行 ...
- 关于peersim样例配置文件的超详细解读(新手勿喷)
相信很多兄弟一开始接触peersim,对配置文件还是有点不适应,我看了好久的样例的配置文件,一层层去找对应的文件的方法,终于好像悟懂了一点,记下来以后回顾. 贴上代码,一点点分析. 首先要说下所谓的配 ...
- hdu 1003 MAX SUM 简单的dp,测试样例之间输出空行
测试样例之间输出空行,if(t>0) cout<<endl; 这样出最后一组测试样例之外,其它么每组测试样例之后都会输出一个空行. dp[i]表示以a[i]结尾的最大值,则:dp[i ...
随机推荐
- [Contract] Truffle 使用流程
Installation $ npm install -g truffle Choose ethereum client (Ganache OR truffle build in `truffle d ...
- dotnet 修复多框架 TargetFrameworks 包含不受支持平台导致构建失败
本文将告诉大家如何修复 dotnet 项目里的多框架 TargetFrameworks 如果包含了当前系统无法支持的平台时,如何进行跳过.解决在 Linux 平台构建时提示 Mac Catalyst ...
- Python数据分析 DataFrame 笔记
08,DataFrame创建 DataFrame是一个[表格型]的数据结构,可以看做是[由Series组成的字典](共用同一个索引).DataFrame由按一定顺序排列的多列数据组成.设计初衷是将Se ...
- 您可知道如何通过`HTTP2`实现TCP的内网穿透???
可能有人很疑惑应用层 转发传输层?,为什么会有这样的需求啊???哈哈技术无所不用其极,由于一些场景下,对于一个服务器存在某一个内部网站中,但是对于这个服务器它没有访问外网的权限,虽然也可以申请端口访问 ...
- 解决Host key verification failed.(亲测有效)
哈喽哇,今天在访问远程服务器的时候,出现了一个小问题. 原因:之前ssh联系过服务器,重置服务器后,再次连接服务器,就会出这个问题. 一.发现问题 问题如下图代码: $ ssh root@108.61 ...
- WEB服务与NGINX(8)-NGINX的长连接功能
1. 长连接配置 keepalive_timeout; 定义客户端保持连接超时时长,0表示禁止长连接,默认为65s,建议使用15s即可. 在ngx_http_upstream_module中也有此项设 ...
- mac更新nodejs
查看本机node.js版本: node -v 清除node.js的cache:sudo npm cache clean -f 安装 n 工具:sudo npm install -g n 安装最新版本的 ...
- windows server2012 挂载linux的nfs共享目录
1.安装NFS客户端 首先win-server上添加角色-----选择文件服务-----网络文件系统(或者NFS客户端)-安装 2.挂载nfs目录 先cmd检查服务端的共享目录 然后执行:showmo ...
- C 语言编程 — 头文件
目录 文章目录 目录 前文列表 头文件 只引用一次头文件 有条件引用 global.h 前文列表 <程序编译流程与 GCC 编译器> <C 语言编程 - 基本语法> <C ...
- SCSS随笔-mixin与@extend
变量 定义变量 $color-white: white; 使用变量 body { background-color: $color-white; } @mixin 与 @include 定义mixin ...