简单表视图

从现在开始进入表视图UITableView,同属UISrollView子类。

包括两个协议UITableViewDelegate, UITableViewDataSource

有一些概念

- 表头视图 header view

- 表脚视图 footer view

- 单元格 cell

- 节 section

- 节头 section header

- 节脚 section footer

这里有一个可重复定义对象的概念,这是为了节约内存开销而设计,当屏幕翻动时,旧的单元格退出屏幕,新的进入。

如果每次都实例化cell,会增加内存开销。

使用可充用单元格标识去视图中找,找到久使用,没找到就创建。

//
//  ViewController.m
//  SimpleTable
//
//  Created by 李亚坤 on 14/10/23.
//  Copyright (c) 2014年 李亚坤. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    NSBundle *bundle = [NSBundle mainBundle];
    NSString *plistPath = [bundle pathForResource:@"team" ofType:@"plist"];
    // 获取表中所有数据
    self.listTeams = [[NSArray alloc] initWithContentsOfFile: plistPath];
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

#pragma mark DataSource协议中的方法
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    // 返回目前节的行数
    return [self.listTeams count];
}

- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    // 为单元格实现数据
    static NSString *CellIdentifier = @"CellIdentifier";
    // 这里为可重复用的对象
    // 定义为CellIdentifier
    // 这样就避免重复定义
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    // 如果没有在故事板中定义Cell的identifier,就会触发if
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }

    // 获取名字
    // 得到当前行索引数
    NSUInteger row = [indexPath row];
    NSDictionary *rowDict = [self.listTeams objectAtIndex:row];
    cell.textLabel.text = [rowDict objectForKey: @"name"];

    // 获取图片
    NSString *imagePath = [rowDict objectForKey:@"image"];
    imagePath = [imagePath stringByAppendingString:@".png"];
    cell.imageView.image = [UIImage imageNamed:imagePath];

    // 扩展箭头向右
    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
    return cell;
}

@end

另外,我在使用时,常常出现程序异常退出,错误信息是:

StoryboardApp[8593:207] Failed to instantiate the default view controller for UIMainStoryboardFile ‘MainStoryboard‘ - perhaps the designated entry point is not set?

之前一直没有找到原因,网上资料也没有搜到,今天终于发现,原来有一个view controller是作为story board的第一个界面,需要勾选上 Initial Scene。如下图:

时间: 2024-10-18 06:20:30

简单表视图的相关文章

IOS 创建简单表视图

创建简单表视图 此实例主要实现UITableViewDataSource协议中必须要实现的两个方法tableView:numberOfRowsInSection: 和tableView:cellForRowAtIndexPath: 当表视图显示的时候会发出tableView:numberOfRowsInSection:消息询问当前节中的行数. 当表视图单元格显示的时候会发出tableView:cellForRowAtIndexPath:消息为单元格提供显示数据. 一.实现的时序图,如下: 二.示

IOS之表视图添加搜索栏

下面是我们要实现的效果.本效果是在上一篇自定义表视图的基础上进行更改的.     1.将Search bar and search display拖动到ViewController中.不要添加Search Bar. 2.修改ViewController的头文件 Cpp代码   #import <UIKit/UIKit.h> @interface IkrboyViewController4 : UIViewController { NSArray *dataArr;//用于显示表视图的数据 NS

IOS开发指南 第6章 表视图 学习

1 概述 结构:表头视图(table header view),表脚视图(table footer view),节(section),单元格(cell) 相关类:UITableViewCell UITableViewController UITableViewHeaderFooterView 委托协议和数据源协议 分类:普通表视图:用于动态表 分组表视图:用于静态表,进行界面布局 单元格的组成:图标 标题 拓展视图 样式:拓展视图由枚举类型UITableViewCellAccessoryType

iOS企业级开发初级课程-表视图(13集)

首先了解了表视图的组成.表视图类的构成.表视图的分类以及表视图的两个重要协议(委托协议和数据源协议),对表视图有了一个整体上的认识.接下来我们掌握了如何实现简单表视图和分节表视图,以及表视图中索引.搜索栏.分组的使用.然后我们学习了如何对表视图单元格进行删除.插入.移动等操作.最后本章向大家介绍了表视图UI设计模式方面的内容. 序号 技术点 1 表视图-1-表视图介绍 2 表视图-2-简单表视图 3 表视图-3-简单表视图下 4 表视图-4-自定义单元格 5 表视图-5-搜索栏-1 6 表视图-

第二章:IOS Table表视图单元格简单介绍

单元格在Table里面也是很总要的一个部分,我们现在就来看看 1. 视图组成结构 图标.标题和副标题可以有选择地设置,扩展 视图可以内置或者自定义,其中内置的扩展视图是在枚举类型UITableViewCellAccessoryType中定义的 UITableViewCellAccessoryType 的常量枚举类型有以下几种: UITableViewCellAccessoryNone.没有扩展图标 UITableViewCellAccessoryDisclosureIndicator.扩展指示器

精通IOS开发-表视图的使用

// // ViewController.m // Simple Table // // Created by Jierism on 16/7/20. // Copyright © 2016年 Jierism. All rights reserved. // #import "ViewController.h" @interface ViewController ()<UITableViewDelegate,UITableViewDataSource> // 声明一个数组,

表视图搜索栏

一.效果 1. 启动程序:上面搜索栏.右边索引条 2. 点击表单元有警告框提示 3. 点击搜索栏输入内容可根据长短范围搜索 二.分析 1. 创建一个表视图,指定委托,实现表单元的显示 2. 创建一个显示搜索结果的模型,该模型也是表视图,遵循搜索结果更新协议,作为更新器 3. 创建一个搜索控制器,指定搜索结果控制器,并创建搜索栏,让搜索结果控制器实现同步更新协议,让搜索到的内容得以在搜索结果中更新 4. 在更新协议实现方法中配置搜索的逻辑 三.实现 1. 实现文件 2. Main.storyboa

表视图控制器(TableViewController)(一)

1 创建一个UITableViewController并展示简单数据 1.1 问题 有很多移动客户端的应用都是采用表的形式来展示数据,因为表视图能使数据看起来更规整.更有调理,比如微信界面就是使用的表视图,如图-1所示: 图-1 在IOS中表视图是非常重要的视图,类型名称为UITabelViewController,是UIViewController的子类,本案例将学习如何使用UITableViewController来展示简单的数据,完成效果如图-2所示: 图-2 1.2 方案 首先创建一个S

IOS 分节表视图

分节表视图 简单的表视图只有一个节,它实际上是分节表视图的一个特例.一个表可以有多个节,节也有头有脚,分节是添加索引和分组的前提. 索引的正确使用原则如所示: 1.索引标题不能与显示的标题完全一样.如果与要显示的标题一致,索引就变得毫无意义. 2.索引标题应具有代表性,能代表一个数据集合. 3.如果采用了索引列表视图,一般情况下就不再使用扩展视图.索引列表视图与扩展视图并存的时候,两者会存在冲突.当点击索引标题时,很容易点击到扩展视图. 正确的使用方式,如下图: 数据文件的格式,如下图: 效果图