IOS-UITableView入门(2)

简介:

1.对于TableView 。每一个item的视图基本都是一样的。

不同的仅仅有数据。

IOS提供了一种缓存视图跟数据的方法。在 -UITableViewCell *) tableView:cellForRowAtIndexPath:

//创建一个用于缓存的标示
    static NSString *ID=@"CellTable";
    //先从缓存中取得UITableViewCell
    UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:ID];
    //假设取不到,则代码创建。
    if (cell==nil) {
        cell=[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:ID];
    }

2

//创建系统提供的每一个item右边的图标
        cell.accessoryType=UITableViewCellAccessoryCheckmark;

3.通过动画改动某个item的显示

[tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationLeft];

4.通过动画删除某个item

[self.tableView deleteRowsAtIndexPaths:self.indexPaths withRowAnimation:UITableViewRowAnimationLeft];

CSZViewController.h 总体代码例如以下:声明TableView的协议和数据源

#import <UIKit/UIKit.h>

@interface CSZViewController : UIViewController <UITableViewDataSource,UITableViewDelegate>

@property (weak, nonatomic) IBOutlet UITableView *tableView;

- (IBAction)trashClick:(id)sender;

@end

CSZViewController.m 有关TableView代码例如以下:

#pragma mark - dataSource
#pragma mark 每列行数
- (NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return self.array.count;
}

#pragma mark 创建每行的View
- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    //创建一个用于缓存的标示
    static NSString *ID=@"CellTable";
    //先从缓存中取得UITableViewCell
    UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:ID];
    //假设取不到,则代码创建。
    if (cell==nil) {
        cell=[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:ID];
    }
    cell.textLabel.text=self.array[indexPath.row];
    cell.detailTextLabel.text=@"description....";
    
    if ([self.deleteArr containsObject:cell.textLabel.text]) {
        //创建系统提供的每一个item右边的图标
        cell.accessoryType=UITableViewCellAccessoryCheckmark;
    }else
    {
        cell.accessoryType=UITableViewCellAccessoryNone;
    }
    
    return  cell;
    
}

#pragma mark - UITableViewDelegate
#pragma mark 点击每一个item调用
- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [tableView deselectRowAtIndexPath:indexPath animated:YES];
    
    if ([self.deleteArr containsObject:self.array[indexPath.row]]) {
        [self.deleteArr removeObject:self.array[indexPath.row]];
        [self.indexPaths removeObject:indexPath];
    }else
    {
        [self.deleteArr addObject:self.array[indexPath.row]];
        [self.indexPaths addObject:indexPath];
    }
    [tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationLeft];
}

#pragma mark 返回每行高度
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return 70;
}




本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5404221.htmlXXXXXXXX,如需转载请自行联系原作者

相关文章
|
11月前
|
移动开发 前端开发 数据安全/隐私保护
iOS代码混淆-从入门到放弃
iOS代码混淆-从入门到放弃
94 0
|
存储 iOS开发
iOS 逆向编程(一)入门条件
iOS 逆向编程(一)入门条件
211 1
|
6月前
|
开发框架 移动开发 Android开发
安卓与iOS开发中的跨平台解决方案:Flutter入门
【9月更文挑战第30天】在移动应用开发的广阔舞台上,安卓和iOS两大操作系统各自占据半壁江山。开发者们常常面临着选择:是专注于单一平台深耕细作,还是寻找一种能够横跨两大系统的开发方案?Flutter,作为一种新兴的跨平台UI工具包,正以其现代、响应式的特点赢得开发者的青睐。本文将带你一探究竟,从Flutter的基础概念到实战应用,深入浅出地介绍这一技术的魅力所在。
184 7
|
移动开发 前端开发 数据安全/隐私保护
iOS代码混淆-从入门到放弃
iOS代码混淆-从入门到放弃
245 0
|
8月前
|
开发工具 C语言 Swift
探索iOS开发之旅:从入门到精通
【8月更文挑战第30天】在这篇文章中,我们将一起踏上一场关于iOS开发的奇妙旅程。无论你是刚刚接触iOS开发的新手,还是希望提升自己技能的开发者,这篇文章都将为你提供有价值的指导和启示。我们将从基础的iOS开发概念开始,逐步深入到高级技巧和最佳实践。通过这篇文章,你将了解到如何构建一个成功的iOS应用程序,以及如何不断提升自己的开发技能。让我们一起开启这场探索之旅吧!
108 4
|
11月前
|
监控 iOS开发
iOS15适配问题:viewForSupplementaryElementOfKind表头和表尾复用闪退,UITableView section header多22像素等问题
iOS15适配问题:viewForSupplementaryElementOfKind表头和表尾复用闪退,UITableView section header多22像素等问题
194 0
|
缓存 JavaScript iOS开发
iOS 逆向编程(十四)Cycript 语法入门
iOS 逆向编程(十四)Cycript 语法入门
268 0
|
11月前
|
移动开发 前端开发 数据安全/隐私保护
iOS 代码混淆 - 从入门到放弃
iOS 代码混淆 - 从入门到放弃
|
移动开发 前端开发 数据安全/隐私保护
 iOS代码混淆-从入门到放弃
代码混淆可以对函数名、变量名、类名等关键代码进行重命名和混淆处理,降低代码的可读性,增加逆向工程的难度,从而有效保护应用程序的安全性,减少开发者的经济损失。
|
Linux Swift iOS开发
iOS 逆向编程(十九)Mach-O 入门了解(如何通过 Mach-O 逆向 APP 思路)
iOS 逆向编程(十九)Mach-O 入门了解(如何通过 Mach-O 逆向 APP 思路)
254 0