IOS UITableView

作者: 小暖风 | 来源:发表于2017-08-19 17:51 被阅读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)];

    相关文章

      网友评论

        本文标题:IOS UITableView

        本文链接:https://www.haomeiwen.com/subject/blotdxtx.html