UITableView学习笔记(一)

本文详细解析了UITableViewController如何作为UITableView的数据源和代理,提供了UITableView常用方法的介绍与使用场景,同时深入探讨了如何配置UITableView的样式、刷新数据及性能优化技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

UITableViewController

UIViewController的子类,UITableViewController默认扮演了3种角色:视图控制器、UITableView的数据源和代理UITableViewControllerview是个UITablView,UITableViewController负责设置和显示这个对象。UITableViewController对象被创建后,会将这个UITableView对象的dataSourcedelegate指向UITableViewController自己。

一、UITableView常用方法

- (id)initWithFrame:(CGRect)frame style:(UITableViewStyle)style

// 初始化一个UITableView,并且设置表格样式

- (void)reloadData   

// 重新访问数据源,刷新界面

- (NSInteger)numberOfSections  

// 分区的个数

- (NSInteger)numberOfRowsInSection:(NSInteger)section

// 第section分区的行数

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

// 通过indexPath找到对应的UITableViewCell对象

- (void)setEditing:(BOOL)editing animated:(BOOL)animated

// 是否要开启编辑模式

- (void)deselectRowAtIndexPath:(NSIndexPath *)indexPath animated:(BOOL)animated

// 取消选中某一行,让被选中行的高亮颜色消失(带动画效果)

- (id)dequeueReusableCellWithIdentifier:(NSString *)identifier

// 通过identifier(缓存)池中找到对应的UITableViewCell对象

- (void)deleteRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation

// 移除indexPaths范围内的所有行

@property(nonatomic,readonly) UITableViewStyle style 

//表格样式

@property(nonatomic,assign) id <UITableViewDataSource> dataSource

// 数据源

@property(nonatomic,assign) id <UITableViewDelegate> delegate 

// 代理

@property(nonatomic,getter=isEditing) BOOL editing 

// 是否为编辑模式

@property(nonatomic) UITableViewCellSeparatorStyle separatorStyle

// 设置分隔线的样式

@property(nonatomic,retain) UIColor *separatorColor

// 设置分隔线的颜色

@property(nonatomic,retain) UIView *tableHeaderView

// 表头显示的视图

@property(nonatomic,retain) UIView *tableFooterView

// 表尾显示的视图

@property(nonatomic) BOOL allowsSelection

// 是否允许选中行

@property(nonatomic) BOOL allowsSelectionDuringEditing

// 是否允许在编辑模式下选中行

@property(nonatomic) BOOL allowsMultipleSelection

// 是否允许选中多行

@property(nonatomic) BOOL allowsMultipleSelectionDuringEditing

// 是否允许在编辑模式下选中多行

二、UITableView

1.数据展示的条件

(1) UITableView的所有数据都是由数据源(dataSource)提供的,所以要想在UITableView展示数据,必须设置UITableViewdataSource数据源对象

(2)要想当UITableViewdataSource对象,必须遵守UITableViewDataSource协议,实现相应的数据源方法

(3)UITableView想要展示数据的时候,就会给数据源发送消息(调用数据源方法),UITableView会根据方法返回值决定展示怎样的数据

2.数据展示的过程

(1)先调用数据源的

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView

得知一共有多少组

(2)然后调用数据源的

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

得知第section组一共有多少行

(3)然后调用数据源的

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

得知第indexPath.section indexPath.row 行显示怎样的cell(显示什么内容)

3.常见数据源方法

(1) 一共有多少组

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView

(2)section组一共有多少行

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

(3)indexPath.section indexPath.row行显示怎样的cell(显示什么内容)

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

(4)section组显示怎样的头部标题

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section;

(5) section组显示怎样的尾部标题

- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section;

4.tableView刷新数据的方式

(1) 修改模型数据

(2) 刷新表格

* reloadData --- 整体刷新(每一行都会刷新)

* - (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation   ---局部刷新

5.性能优化

(1) 定义一个循环利用标识

static NSString *ID = @"C1";

(2) 从缓存池中取出可循环利用的cell

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];

(3) 如果缓存池中没有可循环利用的cell

if (cell == nil) 

{

    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:ID];

}

(4) 覆盖cell上面的数据

cell.textLabel.text = [NSString stringWithFormat:@"%d行数据", indexPath.row];


内容概要:本文档是关于基于Tecnomatix的废旧智能手机拆解产线建模与虚拟调试的毕业设计任务书。研究内容主要包括:分析废旧智能手机拆解工艺流程;学习并使用Tecnomatix软件搭建拆解产线的三维模型,包括设备、输送装置等;进行虚拟调试以模拟各种故障情况,并对结果进行分析提出优化建议。研究周期为16周,涵盖了文献调研、拆解实验、软件学习、建模、调试和论文撰写等阶段。文中还提供了Python代码来模拟部分关键流程,如拆解顺序分析、产线布局设计、虚拟调试过程、故障模拟与分析等,并实现了结果的可视化展示。 适合人群:本任务书适用于机械工程、工业自动化及相关专业的本科毕业生,尤其是那些对智能制造、生产线优化及虚拟调试感兴趣的学生。 使用场景及目标:①帮助学生掌握Tecnomatix软件的应用技能;②通过实际项目锻炼学生的系统建模和虚拟调试能力;③培养学生解决复杂工程问题的能力,提高其对废旧电子产品回收再利用的认识和技术水平;④为后续的研究或工作打下坚实的基础,比如从事智能工厂规划、生产线设计与优化等工作。 其他说明:虽然文中提供了部分Python代码用于模拟关键流程,但完整的产线建模仍需借助Tecnomatix商业软件完成。此外,为了更好地理解和应用这些内容,建议学生具备定的编程基础(如Python),并熟悉相关领域的基础知识。
内容概要:本文档《Kotlin语言教程&案例之基础入门与核心应用》深入介绍了Kotlin这现代编程语言的关键概念、核心技巧、应用场景及未来发展趋势。文档首先解析了Kotlin的核心概念,如空安全机制、扩展函数、数据类和协程等,强调了其简洁性、安全性和与Java的无缝交互。其次,通过类型推断和lambda表达式的实战讲解,展示了提升编程效率的方法。文档还列举了Kotlin在Android开发、后端服务、桌面应用和跨平台开发中的具体应用实例,特别是通过用户信息管理系统的代码案例,详细分析了数据类定义、扩展函数实现、协程处理异步查询以及密封类与when表达式的使用。最后展望了Kotlin的未来发展,包括多平台开发、与AI工具的集成以及在数据科学领域的潜力。; 适合人群:对编程有定了解,尤其是对Java有基础,希望转向或深入了解Kotlin的开发者,以及对跨平台开发感兴趣的程序员。; 使用场景及目标:①学习Kotlin的核心概念,如空安全、扩展函数、数据类和协程等;②掌握提高编程效率的技巧,如类型推断和lambda表达式的使用;③理解Kotlin在不同应用场景下的实战案例,如Android开发、后端服务等;④探索Kotlin的未来发展方向,如多平台开发和与AI工具的集成。; 阅读建议:此资源不仅涵盖了Kotlin的基础理论,还包括大量实战案例,因此在学习过程中应结合实际代码进行练习,特别关注代码中的注释和逻辑,以便更好地理解和掌握Kotlin的特性和优势。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值