接着前一篇的博客来深入学习UITableView,

UITableView的数据源是NSMutableArray的对象_infoArray,现在数组的内容为{@"Zero",@"One",@"Two",@"Three",@"Four"},如果数组的内容增加了,该怎样刷新UITableView界面的内容呢?答案是通过reloadData方法,下面我就来模拟一个场景,点击导航栏右侧的ButtonItem,向可变数组_infoArray中随机不重复地添加0~99之间的数字,那么代码这样写吧。

我需要一个存放了0~99的数字的数组,我这样实例化该数组,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@interface  RootViewController ()<UITableViewDelegate,UITableViewDataSource>
{
    NSMutableArray *_infoArray;//UITableView数据源
    NSArray *_numberArray;//存放数字的数组
}
- (void)viewDidLoad
{
    [super viewDidLoad];
    //初始化_numberArray数组,并且将0~99数字转换为NSNumber对象添加进入该数组
    _numberArray = [[NSMutableArray alloc] initWithCapacity:3];
    for(int i = 0;i < 100;i++)
    {
        NSNumber *tempNumber = [NSNumber numberWithInt:i];
        [_numberArray addObject:tempNumber];
    }
    //初始化TableView数据源
    _infoArray = [[NSMutableArray alloc] initWithCapacity:3];
    //设置导航栏右侧的按钮,并且绑定点击事件-addNumber
    UIBarButtonItem *rightItem = [[UIBarButtonItem alloc] initWithTitle:@"Add" style:UIBarButtonItemStylePlain target:self action:@selector(addNumber:)];
    self.navigationItem.rightBarButtonItem = rightItem;
}

导航栏按钮绑定的-addNumber方法实现

1
2
3
4
5
6
7
8
9
10
11
- (void)addNumber
{
    int count = (int)[_numberArray count];
    //0~count随机数
    int randomIndex = rand()%count;
    NSNumber *tempNumber = [_numberArray objectAtIndex:randomIndex];
    [_infoArray addObject:tempNumber];
    [_numberArray removeObject:tempNumber];
    //调用TableView的reloadData刷新界面
    [self.theTableView reloadData];
}

上面的代码大家应该能够看懂吧,就是随机获取_numberArray中的元素,将其加入UITableView数据源_infoArray中,并且再将其从_numberArray中删除,防止重复添加相同元素,当然上面的代码比较暴力,很多情况没考虑,这里只是测试,不要在意这些细节。

TableView刷新界面的时候会执行-tableView:cellForRowAtIndexPath方法,

1
2
3
4
5
6
7
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    //省略不相干代码
    //....
    cell.textLabel.text = [NSString stringWithFormat:@"%@",[_infoArray objectAtIndex:indexPath.row]];
    //....不相干代码
}

这样的话就每添加一个元素,就通过reloadData刷新一下界面,显示新增加的内容。

下面的一篇博客,我将介绍带动画刷新界面的insertRow语法。

iOS深入学习(UITableView系列2:reloadData)的更多相关文章

  1. iOS深入学习(UITableView系列4:使用xib自定义cell)

    可以通过继承UITableViewCell重新自定义cell,可以像下面一样通过代码来自定义cell,但是手写代码总是很浪费时间, ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...

  2. 开源中国iOS客户端学习

    开源中国iOS客户端学习 续写前言 <开源中国iOS客户端学习>续写前系列博客    http://blog.csdn.net/column/details/xfzl-kykhd.html ...

  3. ios网络学习------6 json格式数据的请求处理

    ios网络学习------6 json格式数据的请求处理 分类: IOS2014-06-30 20:33 471人阅读 评论(3) 收藏 举报 #import "MainViewContro ...

  4. ios开发之OC基础-ios开发学习路线图

    本系列的文章主要来自于个人在学习前锋教育-欧阳坚老师的iOS开发教程之OC语言教学视频所做的笔记,边看视频,边记录课程知识点.建议大家先过一遍视频,在看视频的过程中记录知识点关键字,把把握重点,然后再 ...

  5. Telegram学习解析系列(二):这我怎么给后台传输数据?

    写在前面: 在iOS开发的过程中,有很多时候我们都在和数据打交道,最基本的就是数据的下载和上传了,估计很多很多的小伙伴都在用AFNetworking与后台数据打交道,可有没有想过,哪天AFNetwor ...

  6. Socket学习总结系列(二) -- CocoaAsyncSocket

    这是系列的第二篇 这是这个系列文章的第二篇,要是没有看第一篇的还是建议看看第一篇,以为这个是接着第一篇梳理的 先大概的总结一下在上篇的文章中说的些内容: 1. 整理了一下做IM我们有那些途径,以及我们 ...

  7. iOS开发之UITableView的使用

    这一篇记录的是iOS开发中UITableView的使用,iOS中的UITableView跟Android中的ListView特别相似,以下用一个Demo来说明: 1.Xcode中新建projectTe ...

  8. iOS Core Animation 简明系列教程

    iOS Core Animation 简明系列教程  看到无数的CA教程,都非常的难懂,各种事务各种图层关系看的人头大.自己就想用通俗的语言翻译给大家听,尽可能准确表达,如果哪里有问题,请您指出我会尽 ...

  9. MongoDB学习笔记系列

    回到占占推荐博客索引 该来的总会来的,Ef,Redis,MVC甚至Sqlserver都有了自己的系列,MongoDB没有理由不去整理一下,这个系列都是平时在项目开发时总结出来的,希望可以为各位一些帮助 ...

随机推荐

  1. SSO系统的分析与架构

    随着公司子系统越来越多,一直以来使用ucenter的同步登录方式的性能以及效率问题显得越来越大,重新构建一个SSO系统显得势在必行. 通过google搜索关于SSO单点登录文章,发现以下文章关于新浪微 ...

  2. git使用记录(新手入门)

    最近参与了公司的项目开发,最后要用git来把代码添加到远程库,但是没怎么接触过git,记录一下使用的流程 首先,当然是先下载git,这个略过不提,下载完之后,在你想要保存代码的目录下,用git ini ...

  3. 高并发 php uniqid 用md5生成不重复唯一标识符方案

    高并发 php uniqid 用md5生成不重复唯一标识符方案uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID.uniqid(prefix,more_entropy)prefix 可 ...

  4. webpack笔记_(1)_webpack 安装

    webpack不仅可以解析jsx,也可以将es6转换为es5语法.最终,它把这些代码都打包成一个叫bundle.js的文件,我们在html文件中只引入这么一个js文件就可以了! 打包后,引用的语法im ...

  5. Temporary Tables and the TableType Property [AX 2012]

    Temporary Tables and the TableType Property [AX 2012] 1 out of 1 rated this helpful - Rate this topi ...

  6. [转]jexus的安装

    转自http://www.cnblogs.com/xiaodiejinghong/p/3720921.html 这是一个集成了 mono3.4.0 和 jexus5.6.0 的 jexus+mono ...

  7. java.security.NoSuchAlgorithmException: DES KeyGenerator not available

    更改jre,点击项目build path-->configure build path-->libraries-->jre library system-->edit--> ...

  8. JavaEE基础(十三)

    1.常见对象(StringBuffer类的概述) A:StringBuffer类概述 通过JDK提供的API,查看StringBuffer类的说明 线程安全的可变字符序列 B:StringBuffer ...

  9. php变量内存完全释放

    <?php echo memory_get_usage().PHP_EOL;$a = 1;$b = $a;$a = null;$b = null;unset($a);unset($b);echo ...

  10. LeetCode----204. Count Primes(Java)

    package countPrimes204; /* * Description: * Count the number of prime numbers less than a non-negati ...