UIKit 框架之UITableView一
UITableView在开发中是用的最多的控件,它包含两个代理:UITableViewDataSource,UITableViewDelegate,先熟悉下API
1.初始化
- (instancetype)initWithFrame:(CGRect)frame style:(UITableViewStyle)style;
2.UITableViewStyle
typedef NS_ENUM(NSInteger, UITableViewStyle) {
UITableViewStylePlain, // 平铺样式
UITableViewStyleGrouped // 分组样式
};
3.style属性
@property (nonatomic, readonly) UITableViewStyle style;
4.代理
@property (nonatomic, assign) id <UITableViewDataSource> dataSource; @property (nonatomic, assign) id <UITableViewDelegate> delegate;
5.设置Height
//未设置Height时用下面默认
@property (nonatomic) CGFloat rowHeight;
@property (nonatomic) CGFloat sectionHeaderHeight;
@property (nonatomic) CGFloat sectionFooterHeight;
//默认为0 nil时表示无预估Height
@property (nonatomic) CGFloat estimatedRowHeight NS_AVAILABLE_IOS(7_0);
@property (nonatomic) CGFloat estimatedSectionHeaderHeight NS_AVAILABLE_IOS(7_0);
@property (nonatomic) CGFloat estimatedSectionFooterHeight NS_AVAILABLE_IOS(7_0);
6.背景视图 自动改变Size适应TableView的尺寸, 做为TableView的子视图放在最底部
@property(nonatomic, readwrite, retain) UIView *backgroundView NS_AVAILABLE_IOS(3_2);
7.刷新数据
- (void)reloadData; //刷新数据 - (void)reloadSectionIndexTitles NS_AVAILABLE_IOS(3_0);//分组时刷新组索引
8.节数行数
- (NSInteger)numberOfSections; //节数量 - (NSInteger)numberOfRowsInSection:(NSInteger)section; //节对应的行数
9.获取Rect
- (CGRect)rectForSection:(NSInteger)section; // includes header, footer and all rows - (CGRect)rectForHeaderInSection:(NSInteger)section; - (CGRect)rectForFooterInSection:(NSInteger)section; - (CGRect)rectForRowAtIndexPath:(NSIndexPath *)indexPath;
10.Info
// //获取point点处的NSIndexPath,若点不在任何table中的任意行则返回nil // - (NSIndexPath *)indexPathForRowAtPoint:(CGPoint)point; // //返回制定UITableViewCell对应的NSIndexPath,不可见返回nil // - (NSIndexPath *)indexPathForCell:(UITableViewCell *)cell; // //返回矩形包含的NSIndexPath // - (NSArray *)indexPathsForRowsInRect:(CGRect)rect; // //获取indexPath处的UITableViewCell,若cell不可见或indexPath超出边界返回nil // - (UITableViewCell *)cellForRowAtIndexPath:(NSIndexPath *)indexPath; // //返回可见的UITableViewCell // - (NSArray *)visibleCells; // //返回可见行的NSIndexPath数组 // - (NSArray *)indexPathsForVisibleRows; // //获取Section对应的headerViewForSection、footerViewForSection // - (UITableViewHeaderFooterView *)headerViewForSection:(NSInteger)section NS_AVAILABLE_IOS(6_0); // - (UITableViewHeaderFooterView *)footerViewForSection:(NSInteger)section NS_AVAILABLE_IOS(6_0);
11.滚动
//滚动到indexPath处
- (void)scrollToRowAtIndexPath:(NSIndexPath *)indexPath atScrollPosition:(UITableViewScrollPosition)scrollPosition animated:(BOOL)animated;
//滚动到选择的行处
- (void)scrollToNearestSelectedRowAtScrollPosition:(UITableViewScrollPosition)scrollPosition animated:(BOOL)animated;
12.
//标记了一个tableView的动画块。分别代表动画的开始开始和结束。两者成对出现,可以嵌套使用。一般,在添加,删除,选择 tableView中使用,并实现动效果。在动画块内,不建议使用reloadData方法,如果使用,会影响动画
- (void)beginUpdates;
- (void)endUpdates;
13.对节、行的增删改
- (void)insertSections:(NSIndexSet *)sections withRowAnimation:(UITableViewRowAnimation)animation;
- (void)deleteSections:(NSIndexSet *)sections withRowAnimation:(UITableViewRowAnimation)animation;
- (void)reloadSections:(NSIndexSet *)sections withRowAnimation:(UITableViewRowAnimation)animation NS_AVAILABLE_IOS(3_0);
- (void)moveSection:(NSInteger)section toSection:(NSInteger)newSection NS_AVAILABLE_IOS(5_0);
- (void)insertRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation;
- (void)deleteRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation;
- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation NS_AVAILABLE_IOS(3_0);
- (void)moveRowAtIndexPath:(NSIndexPath *)indexPath toIndexPath:(NSIndexPath *)newIndexPath NS_AVAILABLE_IOS(5_0);
14.修改
//可选中 默认YES
@property (nonatomic) BOOL allowsSelection NS_AVAILABLE_IOS(3_0);
//编辑的时候是否可选中 默认NO
@property (nonatomic) BOOL allowsSelectionDuringEditing;
//可多选 默认NO
@property (nonatomic) BOOL allowsMultipleSelection NS_AVAILABLE_IOS(5_0);
//多选时是否可编辑 默认NO
@property (nonatomic) BOOL allowsMultipleSelectionDuringEditing NS_AVAILABLE_IOS(5_0);
15.选择
//选中行的NSIndexPath
- (NSIndexPath *)indexPathForSelectedRow;
//选中的多行的NSIndexPaths
- (NSArray *)indexPathsForSelectedRows;
//选中indexPath对应的行 滚动到行的位置
- (void)selectRowAtIndexPath:(NSIndexPath *)indexPath animated:(BOOL)animated scrollPosition:(UITableViewScrollPosition)scrollPosition;
//取消选择
- (void)deselectRowAtIndexPath:(NSIndexPath *)indexPath animated:(BOOL)animated;
16.
//当我们tableView中section有很多,数据量比较大的时候我们可以引入indexList,来方便完成section的定位,例如系统的通讯录程序。我们可以通过设置tableView的sectionIndexMinimumDisplayRowCount属性来指定当tableView中多少行的时候开始显示IndexList,默认NSIntegerMax,即默认不显示indexList
@property (nonatomic) NSInteger sectionIndexMinimumDisplayRowCount;
17.
//节索引的文本颜色
@property (nonatomic, retain) UIColor *sectionIndexColor
//节索引的背景色
@property (nonatomic, retain) UIColor *sectionIndexBackgroundColor
//点击时节索引背景色
@property (nonatomic, retain) UIColor *sectionIndexTrackingBackgroundColor
//单元格分割线的样式
@property (nonatomic) UITableViewCellSeparatorStyle separatorStyle;
//设置单元格分割线的颜色
@property (nonatomic, retain) UIColor *separatorColor
//单元格的毛玻璃效果
@property (nonatomic, copy) UIVisualEffect *separatorEffect
//UITableView的HeaderView
@property (nonatomic, retain) UIView *tableHeaderView;
//UITableView的FooterView
@property (nonatomic, retain) UIView *tableFooterView;
18.
//获取重用队列中的单元格
- (id)dequeueReusableCellWithIdentifier:(NSString *)identifier;
//ios6之后出现 需要与registerClass、registerNib配合使用
- (id)dequeueReusableCellWithIdentifier:(NSString *)identifier forIndexPath:(NSIndexPath *)indexPath
//获取HeaderFooterView 需要与registerClass、registerNib配合使用
- (id)dequeueReusableHeaderFooterViewWithIdentifier:(NSString *)identifier NS_AVAILABLE_IOS(6_0);
- (void)registerNib:(UINib *)nib forCellReuseIdentifier:(NSString *)identifier NS_AVAILABLE_IOS(5_0);
- (void)registerClass:(Class)cellClass forCellReuseIdentifier:(NSString *)identifier NS_AVAILABLE_IOS(6_0);
- (void)registerNib:(UINib *)nib forHeaderFooterViewReuseIdentifier:(NSString *)identifier NS_AVAILABLE_IOS(6_0);
- (void)registerClass:(Class)aClass forHeaderFooterViewReuseIdentifier:(NSString *)identifier
UIKit 框架之UITableView一的更多相关文章
- UIkit框架之UItableview
1.继承链:UIScrrollView:UIview:UIresponder:NSObject 2.创建实例的时候首先需要确定table的类型 3.一个tableview对象必须要有一个数据源和一个委 ...
- UIKit 框架之UITableView二
// // ViewController.m // UITableView // // Created by City--Online on 15/5/21. // Copyright (c) 201 ...
- iOS学习32之UIKit框架-可视化编程-XIB
1. Interface Builder 可视化编程 1> 概述 GUI : 图形用户界面(Graphical User Interface, 简称GUI, 又称图形化界面) 是指采用图形方式显 ...
- iOS开发UIKit框架-可视化编程-XIB
1. Interface Builder 可视化编程 1> 概述 GUI : 图形用户界面(Graphical User Interface, 简称GUI, 又称图形化界面) 是指采用图形方式显 ...
- UIKit框架使用总结--看看你掌握了多少
一.经常使用的,基本就是每次项目迭代都需要使用的 UIView.UILabel.UIImage.UIColor.UIFont.UIImageView.UITextField.UIButton. UIS ...
- Swift - 重写UIKit框架类的init初始化方法(以UITabBarController为例)
原来写了篇文章讲UITabBarController的用法,当时是从UIViewController跳转到UITabBarController页面,代码如下: 1 self.presentViewCo ...
- UIKit框架
在今后的应用程序构建中,会陆续使用各式各样的控件,因此UIKit框架的引入是必不可少的! 一.简介 UIKitk框架提供一系列的Class(类)来建立和管理iPhone OS应用程序的用户界面接口.应 ...
- 基础框架Fundation和UIkit框架的定义和使用
Foundation 框架为所有应用程序提供基本的系统服务 您的应用程序以及 UIKit 和其他框架,都建立在 Foundation 框架的基础结构之上.Foundation 框架提供许多基本的对象类 ...
- iOS开发概述UIkit动力学,讲述UIKit的Dynamic特性,UIkit动力学是UIkit框架中模拟真实世界的一些特性。
转发:http://my.oschina.net/u/1378445/blog/335014 iOS UIKit动力学 Dynamics UIAttachmentBehavior 实现iMessage ...
随机推荐
- .NET高级代码审计(第一课)XmlSerializer反序列化漏洞
0X00 前言 在.NET 框架中的 XmlSerializer 类是一种很棒的工具,它是将高度结构化的 XML 数据映射为 .NET 对象.XmlSerializer类在程序中通过单个 API 调用 ...
- SHT20 IIC总线驱动概述
SHT20温湿度传感器使用iic总线的驱动方式,以下资料参考SHT20 datasheet总结 1.IIC总线 Start信号 IIC总线的起始信号以SDA由高电平变为低电平,等待5us以上,再由SC ...
- DevExpress WinForms Controls 学习系列1
一个偶然的机会,接触到DevExpress.项目是WinForm的,应用了DevExpress.为了使项目具备维护开发的生命力,我觉得有必要系统的学习一下DevExpress,今天是学习笔记的第一篇. ...
- MYsql 之单标查询.
http://www.cnblogs.com/wangfengming/articles/8064956.html .数据操作 .增 INSERT into t2(name,age) VALUES() ...
- day72 Ajax 第一天
第一个示例:(i1+i2 ) 前端数据 <!DOCTYPE html> <html lang="en"> <head> <meta cha ...
- django项目中使用项目环境制作脚本 通过终端命令运行脚本文件
在实际的django项目开发中,有时候需要制作一些脚本文件对项目数据进行处理,然后通过终端命令运行脚本. 完整的实现流程如下: 1.在一个应用目录下(app, 必须是在应用目录下,可以专门创建一个应用 ...
- Aizu 2249Road Construction 单源最短路变形《挑战程序设计竞赛》模板题
King Mercer is the king of ACM kingdom. There are one capital and some cities in his kingdom. Amazin ...
- Flask从入门到精通之使用Flask-Migrate实现数据库迁移
在开发程序的过程中,你会发现有时需要修改数据库模型,而且修改之后还需要更新数据库.仅当数据库表不存在时,Flask-SQLAlchemy 才会根据模型进行创建.因此,更新表的唯一方式就是先删除旧表,不 ...
- 使用.net core读取Json文件配置
1.使用vs2017创建一个应用台程序 2.使用程序包管理器控制台执行命令 Install-Package Microsoft.AspNetCore -Version 2.0.1 3.创建一个json ...
- NSCache 的好处
相较于 NSDictionary 线程安全 系统资源将要耗尽时,自动删减缓存 自动删减"最久未使用的"对象 不会自动拷贝键.因为有些键不支持拷贝操作 可以和 NSPurgeable ...