IOS 控件使用介绍iOS开发

IOS UITableView

2017-08-19  本文已影响32人  小暖风

UITableView表格式图,IOS开发中使用非常广泛的一个控件,继承自UIScrollView。

一:初始化

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

typedef NS_ENUM(NSInteger, UITableViewStyle) {

UITableViewStylePlain,//和笔记本似的,有横线直角,如果数据少于tableView的高,下面会显示空白行。

UITableViewStyleGrouped//顶部会显示view

};

如果不想显示下面的空白格,设置tableView.tableFooterView= [[UIViewalloc]initWithFrame:CGRectZero];

如果不想显示系统默认的分割线,设置tableView.separatorStyle=UITableViewCellSeparatorStyleNone;

如果不想显示cell选中颜色,设置cell.selectionStyle=UITableViewCellSelectionStyleNone。

二:Cell

UITableViewCell(视图控件),tableView中每一行都是一个UITableViewCell对象,是tableView上的一个组成段元。系统提供的cell样式是比较局限的,不能完全满足多样化的开发需求。系统提供的UITableViewCell的样式是title、subTitle左侧可以显示image(比较简单)。

UITableView 对cell的重用机制:一般情况下,tableView最多会创建一屏+1个cell。tableView对cell的重用机制,能够最大限度的节省程序的内存开销,提高程序的运行效率,在开发中具有非凡的借鉴意义。tableView本身带有一个cell的可重用队列,滑出屏幕的cell,先到可重用队列中。从屏幕中即将出现的cell,先根据cell的可重用标识符去重用队列中拿已经存在的cell。

为了实现cell的多样化,一般通过继承UITableViewCell,得到子类,对子类进行视图控件的添加和功能的扩展(根据需求,定制cell)。继承UITableViewCell,根据需求,向cell中添加所需的视图控件. 还需要将数据填充到cell的各个控件中

用xib实现UITableViewCell定制

1、继承UITableViewCell创建一个cell的类

2、创建一个名为AppCell的空的Xib

3、控件拖拽一个UITableViewCell到xib中

4、去掉autolayout,opensin 改成xcode4.6

5、filesOwner 在代码中指定

6、选中xib中的tableViewCell,在class中将默认的UITableViewCell改成AppCell

7、向AppCell拖拽所需的控件,并设置好控件的属性

8、将需要重新赋值的控件与AppCell.h相关联

9、选中AppCell 设置cell的可重用标识符

//View从xib中加载不会调到initWithFrame方法

//View从xib中加载,会触发initWithCoder方法,如果想让View从xib中加载,子控件是通过代码的方式来添加到View中,那么创建和添加子控件的过程写在 initWithCoder中(重要)。

原生代码自定义cell

创建一个继承自UITableViewCell的cell即可。

自定义的tableViewCell,有时自定义的分割线会部分显示,解决方案simulator -> debug -> optimize rendering for window scale取消打勾就好。

三:代理

UITableView 不同于以前我们使用的控件,我们需要使用代理设置它的显示的数值。

tableView.delegate = self;

tableView.dataSource = self; //这个代理是管理数据的

四:NSIndexPath

NSIndexPath 作为行所在位置的描述类,indexPath.section,indexPath.row 分别带有行所在分区和分区中的第几行 (行的位置的信息)

indexPath.sectionsection段,indexPath.rowrow行

五:如何做一个Flicker(横向的tableView)

继承UIScrollView,重新写一个UITableView

六:如何做瀑布流WaterFlowView

放三个UITableView,联动滚动

七:

刷新数据后设置从头显示,[self.storeTableView setContentOffset:CGPointMake(0,0)];

上一篇下一篇

猜你喜欢

热点阅读