目录:

一、UITableViewController(表视图控制器)

二、委托协议

三、tableview工作过程(三问一响应)

四、UITableViewCell

回到顶部

一、UITableViewController(表视图控制器)

1 table:ios中的表格指一维半的表格,一行一列,而一列又分多个区

2 最常用的一个视图控制器,用于按照列表的方式显示和操作大量的数据时使用

3 好处,布局管理,不需要计算坐标,自动判断事件,自动进行内存管理,自动设置数据值。

4 创建UITableViewController

新建一个分类,继承自UITableViewController

5  tableview的基本信息

uiviewcontroller  ->  uiview self.view

uitableviewcontroller ->uitableview self.tableview

tableview style : plain 普通表视图group分组表视图

separator 行间分隔符

内部结构:

table view的内部结构

table view表头

section分区 section header分区头 rows行

section分区尾

table footer表尾

有些属性可以点.出来

回到顶部

二、委托协议:

数据源协议UITableViewDataSource,事件处理协议UITableViewDelegate,实现协议,会让我们自己的tableviewcontroller对象来遵守这两个协议

DataSource中的方法

//返回区域数

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView

{

return 3;

}

//返回区域行数 多次调用  每个区域都会调 有3个区就调3次

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

{

if (section == 0) {

return 3;

}else if(section == 1){

return 5;

}else{

return 20;

}

}

NSIndexPath 保存区域section、行row,

回到顶部

三、tableview工作过程(三问一响应)

三问:几个区(区号从0开始),

每个区几行,nsindexpath本身是一个集合,uikit对类增加了分类,分类中有两个属性.section保存的区域是多少

.row保存的是行

每一行什么内容

//创建一个uitablecell 返回内容 没一行都会调用 有多少行调多少次
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    //cell重用
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
    }
    
    // Configure the cell...
    //1区的第0行text为heheh,其他为hello
    //section表示区域 row表示行数
    if (indexPath.section == 1 && indexPath.row == 0) {
        cell.textLabel.text = @"heheh";
    }else{
        //文本
        cell.textLabel.text = @"hello";
        //图片
        cell.imageView.image = [UIImage imageNamed:@"cellImage"];
        //详细信息
        cell.detailTextLabel.text = @"detail ,,,";//默认不显示,把73行initWithStyle值改为UITableViewCellStyleSubtitle
    }
    
    return cell;
}

NSIndexPath集合类,保存一些路径

回到顶部

四、UITableViewCell

1 是一个视图(uiview的子类)用来显示tableview中的一行

在此cell视图中,包含了一些子视图,textlabel(是uilable类型)imageview(是uiimageview类型)deatailtextlabel( 是uilabel类型)

2 cell的重用

cell的重用是如果显示14个textLabel下面的textlabel会重用这14个不会创建新的cell

从tabelview对象中指定的cell队列(identifier)中,获取可以重复使用的cell对象(现在没有显示在界面上的cell对象),如果没有找到可重复使用的,那返回nil,此时我们就创建新的cell对象,创建新cell对象时要指定identifier,当此cell出了界面后,会根据其identifier的值放到对应的队列中,以供将来重复使用

3
tableviewcontroller的model

model可以是数组可以是对象

detailTextLabel默认是不显示的,可以修改飘红的地方以显示

if (cell == nil) {

cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];

}

//黄色目录里面的内容直接写文件名 不用写路径名

//蓝色目录里面的内容要写路径加文件名才能用

NSString *photoName = [NSString stringWithFormat:@"01%d.png",indexPath.row];

cell.imageView.image = [UIImage imageNamed:photoName];

作业:

1. 根据作业资源3,实现TMusic项目中的开始欢迎界面。

使用UIScrollView, UIImageView

关键代码:

scrollView.pagingEnabled = YES;

scrollView.contentSize = CGSizeMake(self.view.frame.size.width*5, self.view.frame.size.height);

注意各个对象的创建:

UIImage *image = [UIImage imageNamed:@"Welcome_3.0_1.jpg"];

UIImageView *imageView = [[UIImageView alloc] initWithImage:image];

UIScrollView *scrollView = [[UIScrollView alloc] init];

2. 最后一个Demo,改:

数组中放的不再是NSString, 而是MXPhoto类的对象

MXPhoto类有三个属性:

图片的名字

图片的文件名

图片的简介

05-UIKit(UITableViewController)的更多相关文章

  1. 05 redis(进阶)

    redis 阶段一.认识redis 1.什么是redis Redis是由意大利人Salvatore Sanfilippo(网名:antirez)开发的一款内存高速缓存数据库.Redis全称为:Remo ...

  2. iOS--通讯录(UITableViewController)

    本文主要实现通讯录的部分功能(分组名.索引.分组的组名)等等功能: 废话不多说了,先上效果图: 在工程中需要导入一个plist文件,文件图如图: 工程目录文件如图: 工程程序如图所示: RootTab ...

  3. iOS--(UITableViewCell)、(UITableViewController)微信个人主页

    本文主要实现了微信的个人主页的设置: 目录文件如下: 实现代码如下: RootTableViewController.h #import <UIKit/UIKit.h> @interfac ...

  4. scala 学习笔记(05) OOP(中)灵活的trait

    trait -- 不仅仅只是接口! 接上回继续,scala是一个非常有想法的语言,从接口的设计上就可以发现它的与众不同.scala中与java的接口最接近的概念是trait,见下面的代码: packa ...

  5. ⑤ 设计模式的艺术-05.原型(Prototype)模式

    场景 思考一下:克隆技术是怎么样的过程? 克隆羊多利大家还记得吗? javascript语言中的,继承怎么实现?那里面也有prototype,大家还记得吗? 原型模式 通过new产生一个对象需要非常繁 ...

  6. 《数据结构与算法之美》 <05>链表(下):如何轻松写出正确的链表代码?

    想要写好链表代码并不是容易的事儿,尤其是那些复杂的链表操作,比如链表反转.有序链表合并等,写的时候非常容易出错.从我上百场面试的经验来看,能把“链表反转”这几行代码写对的人不足 10%. 为什么链表代 ...

  7. 【原】AFNetworking源码阅读(一)

    [原]AFNetworking源码阅读(一) 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 AFNetworking版本:3.0.4 由于我平常并没有经常使用AFNetw ...

  8. 【AFNetworking】AFNetworking源码阅读(一)

    1. 前言 2. iOS Example代码结构 3.AFNetworkActivityIndicatorManager 4. UIRefreshControl+AFNetworking 5. AFN ...

  9. iOS学习——ViewController(六)

    ViewController是iOS应用程序中重要的部分,是应用程序数据和视图之间的重要桥梁,ViewController管理应用中的众多视图. iOS的SDK中提供很多原生ViewControlle ...

随机推荐

  1. Maven导入时,Cannot change version of project facet Dynamic Web Module to 3.0.

    今天手贱,在eclipse里面把项目删掉了,重新maven导入时,报出Cannot change version of project facet Dynamic Web Module to 3.0. ...

  2. ZOJ 1093 Monkey and Banana (LIS)解题报告

    ZOJ  1093   Monkey and Banana  (LIS)解题报告 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid= ...

  3. linux: telnet

    问题: telnet: connect to address 192.168.1.103: Connection refused 总结:{ 1. 需要开启telnet服务, /etc/xinetd.d ...

  4. .net运行时和核心类库源码(部分源码)微软官方下载

    部分类库代码:http://referencesource.microsoft.com/download.html 运行时clr源码: http://www.microsoft.com/en-us/d ...

  5. AseoZdpAseo.init(this, AseoZdpAseo.INSERT_TYPE);

    让以后的人知道吧,这就是一个广告包,相当于广告插件.

  6. 转: c++继承中的内存布局

    英文原文: http://www.openrce.org/articles/files/jangrayhood.pdf 翻译: http://blog.csdn.net/jiangyi711/arti ...

  7. DropDownList SelectedIndexChanged使用

    在asp.net中使用dropdownlist,默认是不会送的,我们想要选中一项然后更改相关的数据,应该吧属性AutoPostback改为true. http://msdn.microsoft.com ...

  8. BZOJ 1651: [Usaco2006 Feb]Stall Reservations 专用牛棚

    题目 1651: [Usaco2006 Feb]Stall Reservations 专用牛棚 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 553   ...

  9. 详解Spring

    Spring SSH框架中Struts2:是基于Web层,Hibernate:是基于持久化的,Spring:业务层,管理bean,它是一个容器,List,map, Set这里的内容,是适合已经学过了S ...

  10. Web API 设计摘要

    近期读了一本微电子书 Brian Mulloy 所著<Web API Design>感觉颇多收获,特对其内容做了个整理摘要以便回想其观点精华以指导日常工作中的设计思路. 本文主要讲述 We ...