IOS 学习:UITableView 使用详解1

摘要:
IOS学习:作为IOS应用程序中最常见的视图之一,UITableView使用了tableView的详细说明。因此,学习tableView非常重要。本文简要介绍了tableView的创建过程和几种基本的委托方法。在视图控制器类的头文件中,将UITableView指针变量表和数组dataList声明为数据源。添加UITableViewDelegate和UITableViewDataSource委托,如下#import<UIKit/UIKit。h˃ @interfaceViewController:UIViewController@propertyNArray*dataList;@propertyUITableView*表;@End2.创建UITableView和其他相关对象-numberOfSectionsInTableView:tableView{return1;}此方法返回表表视图委派方法的组数:UITableViewDelegate此处的方法是可选的,因此您可以根据需要使用它们。这里我只使用了四种方法,如上图所示。

IOS 学习:UITableView 使用详解1

tableView作为最常见的视图之一在ios应用之中占有举足轻重的地位,因此学习tableView是非常重要的。这篇文章粗略的介绍tableView的创建过程和几个基本的委托方法。

1.添加委托和成员变量。

在视图控制器类的头文件当中,声明UITableView 指针变量table,数组datalList作为数据源。添加UITableViewDelegate 和UITableViewDataSource委托,具体添加方式如下。

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController<UITableViewDataSource,UITableViewDelegate>

@property(nonatomic,retain)NSArray *dataList;

@property(nonatomic,retain)UITableView *table;

@end

2.创建UITableView和其他相关对象。

在viewDidLoad方法下添加创建表格试图对象和进行数据源的初始化。

dataList=[[NSArrayalloc]initWithObjects:

              @"武汉",

              @"重庆",

              @"上海",

              @"北京",

              @"深圳",

              @"广州",

              @"重庆",

              @"香港",

              @"台海",

              @"天津",nil];

    table=[[UITableViewalloc]initWithFrame:self.view.framestyle:UITableViewStylePlain];

    table.backgroundView=[[UIImageViewalloc]initWithImage:[UIImageimageNamed:@"iphone.jpg"]];

    table.delegate=self;

    table.dataSource=self;

    [self.viewaddSubview:table];

这里重点说一下UITableViewStyle,IOS提供了两种表格样式,即普通样式UITableViewStylePlain和分组样式UITableViewStyleGrouped。

两种样式分别如图:

IOS 学习:UITableView 使用详解1第1张IOS 学习:UITableView 使用详解1第2张

将表格的delegate和dataSource设置为self,这样我们自定义的委托方法才会被调用。

3.添加委托方法

数据原方法:UITableViewDataSource

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

{

    return [dataListcount];

}

这个方法返回表格每个分组的行数,非分组的表格默认为一个分组。

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView

{

    return1;

}

这个方法返回表格的组数

表格视图委托方法:UITableViewDelegate

这里的方法都是可选择的,因此可以根据需求使用

这里我只使用了4个方法,效果如上图。

1.创建单元格。

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

{

    NSString *identifier=@"identifier";

    UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:identifier];

    if(cell==NULL)

    {

        cell=[[UITableViewCellalloc]initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:identifier];

    }

    NSInteger row=[indexPath row];

    cell.textLabel.text=[dataListobjectAtIndex:row];

    return cell;

}

这个函数是具体创建每个单元格所使用的方法, dequeueReusableCellWithIdentifier 方法是检查队列中是否有可重用的单元格,如果没有则进入if条件语句新建单元格。否则跳过新建过程,这样有利于提高表格滚动时的运行速度。

接下来,给每个单元格的标签赋值cell.textLabel.text=[dataList objectAtIndex:row];

然后返回该单元格。

2.呈现单元格之前的设置动作。

-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath

{

    if([indexPath row]%2==0)

    {

        cell.backgroundColor=[UIColorgreenColor];

    }

    else{

        cell.backgroundColor=[UIColorblueColor];

    }

}

当一个单元格将被呈现是,触发此方法,这个方法内部完成个每个单元格的背景颜色设置工作。

当为偶数行市,单元格函数是绿色,否则将是蓝色。

3.表格选择函数。

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

{

    UIAlertView *alert=[[UIAlertViewalloc]initWithTitle:@"提示"message:dataList[indexPath.row]delegate:selfcancelButtonTitle:@"OK"otherButtonTitles:nil, nil];

    [tableView deselectRowAtIndexPath:indexPath animated:YES];

    [alert show];

}

当用户选择某个方法是,将触发此方法。在这个方法内部,新建了一个警告对话框,当选择某个单元格市,将弹出对话框。

IOS 学习:UITableView 使用详解1第3张

deselectRowAtIndexPath方法就是取消选择状态,选择某个单元格后,该单元格变成了蓝色,调用该方法后就会返回未被选择时候所呈现的颜色。

4.滑动删除

-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath

{

    NSLog(@"执行删除");

}

当用户在某个单元格上滑动式时,会出现一个Delete按钮,用户点击该按钮,触发此方法。

IOS 学习:UITableView 使用详解1第4张

 

免责声明:文章转载自《IOS 学习:UITableView 使用详解1》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Winform通用模块之流水号生成ECharts图表实战经验1:如何设置图表同序列不同数据点的独立颜色值下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

使用 AFNetworking 进行 XML 和 JSON 数据请求

(1)XML 数据请求 使用 AFNetworking 中的 AFHTTPRequestOperation 和 AFXMLParserResponseSerializer,另外结合第三方框架 XMLDictionary 进行数据转换 使用 XMLDictionary 的好处:有效避免自行实现 NSXMLParserDelegate 委托代理协议方法来进行繁...

JavaWeb项目操作Excel(导出、解析)

对于javaweb开发者来说,对于Excel的操作是必须要了解的知识点,自己原先也做过一些excel的操作,但是没有系统的整理过,所以每回使用的时候都是在重新查找信息,所以做了如下整理: 其实在javaweb开发中经常用到的Excel操作便是导出、解析。下面就从这两个方面来总结。 首先便是导出,在这个方面其实我主要用到的是两种方式:一种是依赖于freema...

入门者初试 Cell(华表)结合C#的应用

本次内容主要包括1.Cell(华表)与VS.NET中常用报表 的 对比参照2.简单的Cell(华表)在C#中的示例因工作需要,现开始接触Cell(华表),用该国产报表软件进行报表开发。和水晶报表及ReportServices等可以在服务器端进行操作的报表不同,Cell(华表)是需要JavaScript或VBScript在客户端进行操作。 Cell对照VS自...

肿瘤精准细胞免疫治疗:梦想照进现实

自2015年1月20日美国总统奥巴马高调宣布启动“精准医疗计划(Precision Medicine Initiative)”以来,全球范围内掀起一股精准医疗热。在国内,精准医疗也风生水起,受到业内学者、药企代表、患者等相关人群的广泛关注。精准医疗本质上是一种更为精确的个性化医疗,非常适用于恶性肿瘤的临床治疗。而相对于其他精准医疗策略,精准细胞免疫治疗(p...

openpyxl/csv--python处理excel表格模块

#conding='utf-8'#属性方法参考:https://zhuanlan.zhihu.com/p/43186995 #Workbook ;worksheet;active;load_workbook;cell;value;rows;append"""workbook对象属性: active:获取当前活跃的Worksheet worksheets...

Jupyter-NoteBook-你应该知道的N个小技巧

  智能决策上手系列教程索引 不断更新部分内容来自于翻译整理 多行输出 在Notebook的中开头cell中添加以下代码可以实现多行输出: from IPython.core.interactiveshell import InteractiveShell InteractiveShell.ast_node_interactivity = 'all'...