`

Table View的简单使用

    博客分类:
  • ios
ios 
阅读更多
Table View简单描述:

    在iPhone和其他iOS的很多程序中都会看到Table View的出现,除了一般的表格资料展示之外,设置的属性资料往往也用到Table View,Table View主要分为以下两种:
[img]

[/img]

Plain:这是普通的列表风格
Grouped :这是分块风格。

对于UITableView,我們有一些特殊的概念和术语,比如说我们成Table View的一行为Cell,而许多的Cell可以组成Section,每个Section上下又分別有Header和Footer,许多个的Section则组成了整个Table ,当然Table也有Header和Footer,下面看两种图就能明白这几个拗口名词了:

[img]

[/img]

[img]

[/img]

现在理论知识了解的差不多了。今天先做一个Plain样式的例子,这样加强对Table view的熟练使用。

1、新建项目
新建一个Single View Application,命名为TableViewDemo,开发环境是:Xcode 4.3,iPhone 5.1模拟器。
2、Table View放上控件
打开ViewController.xib文件,往ViewController.xib界面上拖拽一个Table View控件到现有的View上,
对齐。

[img]

[/img]

3、连接新添加的TableView和ViewController。
选中新添的TableView控件,打开连接检查器(Connection Inspector), 找到delegate和datasource并点中圆圈拉线连接到左边File's Owner图标上,为什么要把这两个连接File's Owner上呢?这是因为iOS使用的MVC设计模式,View和ViewController之间的对应关系,需要一个桥梁来进行连接的(即,对于一个视图,他如何知道自己的界面的操作应该由谁来响应),这个桥梁就是File's Owner。

[img]

[/img]

4、打开ViewController.h,添加协议和Property (类似与java里的实现接口)
#import <UIKit/UIKit.h>

@interface ViewController : UIViewController<UITableViewDelegate, UITableViewDataSource>
@property (strong, nonatomic) NSArray *list;
@end



5、打开.m文件,添加:
@synthesize list = _list;

[img]

[/img]
这是发现有两个警告,提示未完成的实现,这提示的是UITableViewDelegate, UITableViewDataSource这个两个头文件里的协议的方法未实现。待会我们去实现它。


6、建立数据:
- (void)viewDidLoad
{
    [super viewDidLoad];
	// Do any additional setup after loading the view, typically from a nib.
    NSArray *array = [[NSArray alloc] initWithObjects:@"美国", @"菲律宾",
                      @"黄岩岛", @"中国", @"泰国", @"越南", @"老挝",
                      @"日本" , nil]; 
    self.list = array; 
}

- (void)viewDidUnload
{
    [super viewDidUnload];
    // Release any retained subviews of the main view.
    self.list = nil;
    
}



7、生成row:
关键的步骤来了,实现tableview添加数据源,返回TableView的行数,返回各行cell实例。
- (UITableViewCell *)tableView:(UITableView *)tableView 
         cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    
    static NSString *TableSampleIdentifier = @"TableSampleIdentifier"; 
    
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier: 
                             TableSampleIdentifier]; 
    if (cell == nil) { 
        cell = [[UITableViewCell alloc] 
                initWithStyle:UITableViewCellStyleDefault 
                reuseIdentifier:TableSampleIdentifier]; 
    } 
    
    NSUInteger row = [indexPath row]; 
    cell.textLabel.text = [self.list objectAtIndex:row]; 
	return cell; 
}


上面的第二个方法中,
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier: TableSampleIdentifier];
这个语句根据标识符TableSampleIdentifier寻找当前可以重用的UITableViewCell。当某行滑出当前可见区域后,我们重用它所对应的UITableViewCell对象,那么就可以节省内存和资源。
这里UITableViewCellStyleDefault是表示UITableViewCell风格的常数,除此之外,还有其他风格,后面将会用到。
注意参数(NSIndexPath *)indexPath,它将行号row和部分号section合并了,通过[indexPath row];获取行号。之后给cell设置其文本:
cell.textLabel.text = [self.list objectAtIndex: row];



8、现在一个简单的TableView就弄好看,运行下看效果
[img]

[/img]


9、添加图片。
在项目上add files到项目,提交两张小图片,然后在cell返回之前添加如下代码
NSUInteger row = [indexPath row]; 
    cell.textLabel.text = [self.list objectAtIndex:row]; 
    UIImage *image = [UIImage imageNamed:@"qq"]; 
    cell.imageView.image = image; 
    UIImage *highLighedImage = [UIImage imageNamed:@"youdao"]; 
    cell.imageView.highlightedImage = highLighedImage;
	return cell; 

效果如下:

[img]

[/img]



10、设置行的风格
表示UITableViewCell风格的常量有:

UITableViewCellStyleDefault
UITableViewCellStyleSubtle
UITableViewCellStyleValue1
UITableViewCellStyleValue2
可以自己修改看看效果。可以添加一个detail

cell.detailTextLabel.text =@"打打打打";

return cell;

[img]

[/img]



11、选择table里的某一行

在.m文件@end之前编写  -(void)table  这时会自动提示可以实现的方法,
[img]

[/img]

我们选择这个方法

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

选中是做个提示,提示选中了那个信息,代码实现如下:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    NSString *rowString = [self.list objectAtIndex:[indexPath row]];
    UIAlertView * alter = [[UIAlertView alloc] initWithTitle:@"选中的行信息" message:rowString delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];
    [alter show];
}



[img]

[/img]

  • 大小: 237.3 KB
  • 大小: 32.6 KB
  • 大小: 35.5 KB
  • 大小: 48.1 KB
  • 大小: 82.6 KB
  • 大小: 18.5 KB
  • 大小: 102.9 KB
  • 大小: 107.6 KB
  • 大小: 35.9 KB
  • 大小: 119 KB
  • 大小: 160 KB
分享到:
评论

相关推荐

    table view 使用

    本示例"table view使用"是一个简单的UITableView的使用教程,通过它我们可以学习如何在应用中有效地运用UITableView。 首先,我们要创建一个UITableView的实例。在Swift中,我们通常在UIViewController的子类中实现...

    前端开源库-table-view

    在本篇文章中,我们将深入探讨"table-view"库的核心特性、使用方法以及它如何帮助提升开发效率。 1. **核心特性** - **数据驱动**:"table-view"库基于数组数据,这意味着你可以通过简单的JavaScript数组来定义...

    Laravel开发-laravel-table-view

    要在项目中使用`laravel-table-view`,首先需要通过Composer安装。在终端中运行以下命令: ``` composer require yajra/laravel-datatables-oracle ``` 安装完成后,你需要在服务提供者中注册该包,通常是在`...

    IOS应用源码Demo-视觉效果很好的table view美化效果demo-毕设学习.zip

    1. 自定义Cell:Table View Cell的默认样式通常是简单的文本和图像。然而,为了提升用户体验和界面美观性,开发者通常会自定义cell,包括添加更多元素(如按钮、滑块等)、改变布局、使用自定义字体和颜色,以及创建...

    ios应用源码之视觉效果很好的table view美化效果demo 20181210

    在iOS应用开发中,Table View是一种非常常见的UI组件,它用于展示列表数据,例如联系人、日程或新闻。在本“ios应用源码之视觉效果很好的table view美化效果demo”中,我们将深入探讨如何通过自定义Cell和运用动画来...

    IOS应用源码——视觉效果很好的table view美化效果demo.zip

    5. 响应式设计:为了使Table View适应不同设备和屏幕方向,源码可能包含了适配器布局(Auto Layout)和Size Classes的使用,确保每个cell在各种尺寸下都能正确显示。 6. 高性能优化:对于大数据量的Table View,...

    IOS应用源码——超炫的table view效果:上下滑动展示出页面.zip

    在实际的实现过程中,开发者可能使用了UITableViewDataSource和UITableViewDelegate协议,这两个协议提供了定义table view内容和行为的方法。例如,`numberOfSectionsInTableView:`和`tableView:...

    JS组件Bootstrap Table使用方法详解

    二、BootStrap table简单介绍 bootStrap table 是一个轻量级的table插件,使用AJAX获取JSON格式的数据,其分页和数据填充很方便,支持国际化 三、使用方法 1、引入js、css [js] view plain copy &lt;!--css样式--&gt...

    IOS应用源码——设置不同风格的table view样式.zip

    在iOS开发中,UITableView是一种非常重要的UI组件,用于展示列表数据。这个压缩包"IOS应用源码——设置不同风格...无论是简单的列表展示还是复杂的界面布局,掌握Table View的定制技巧都是iOS开发中不可或缺的一部分。

    BootStrapTable实现增删改查

    BootstrapTable是一种基于Bootstrap框架的前端数据展示插件,它提供了丰富的功能,如表格排序、分页、筛选等,使得在网页上创建交互式表格变得简单。在MVC(Model-View-Controller)架构中,结合C#后端,Bootstrap...

    小程序table组件 满足基本需求

    在`&lt;view&gt;`标签内引入`&lt;table&gt;`和`&lt;tr&gt;`、`&lt;td&gt;`等子标签,就可以构建出一个基础的表格结构。 `table`组件的使用方法可以参照链接中的教程:[https://blog.csdn.net/weixin_67585820/article/details/123791822]...

    IOS应用源码——社会化媒体分享(table view视图).zip

    这个压缩包文件“IOS应用源码——社会化媒体分享(table view视图).zip”包含了一个iOS应用的源代码,该应用着重实现了一个基于UITableView的社会化媒体分享功能。在这个项目中,开发人员可能使用了Apple的UIKit...

    qgraphicsview

    在描述中提到的“封装成表格的形式”,通常意味着使用QGraphicsView和QGraphicsItem来模拟表格布局。这涉及到创建一个继承自QGraphicsItem的自定义类,这个类将代表表格的一个单元格。每个单元格可以包含一个控件,...

    Closure-Table-ClosureTable.rar

    在这个名为 "Closure-Table-ClosureTable.rar" 的项目中,开发者使用了Spring、SpringMVC(SSM)框架来实现了一个演示 Closure Table 概念的简单应用。以下是关于 Closure Table 和 SSM 框架的相关知识点: 1. **...

    QlikView使用手册

    QlikView是一款先进的商业智能软件,其使用手册详细介绍了如何安装与使用QlikView进行数据处理和分析。在详细说明手册中所涉及的知识点之前,需要明确QlikView的核心特性在于其关联数据模型和内存计算,这使得它在...

    微信小程序实现的绘制table表格功能示例

    本文实例讲述了微信小程序实现的绘制table表格功能。分享给大家供大家参考,具体如下: 表格的绘制 js Page({ data:{ infeed:[', 1周, 2周, 3周, 总计], endwise1: 游泳, tb1:0, tb2:0, tb3:0, tb4:0, endwise2: ...

    Python库 | cdk-dynamo-table-view-0.1.108.tar.gz

    6. **使用方法**: 要使用这个库,开发者需要先安装Python环境,然后通过pip或其他包管理器安装cdk-dynamo-table-view库。接着,在CDK项目中导入并配置库,连接到DynamoDB实例,最后运行程序以启动表格视图。 总结,...

Global site tag (gtag.js) - Google Analytics