zoukankan      html  css  js  c++  java
  • TableViewCell中自定义XIB的使用

    默认的表格样式通常不能满足正常的开发需要

     

    解决方法 —— 自定义Cell

    1> XIB(团购)

    2> 纯代码(微博)

    3> StoryBoard

     

    XIB的定义步骤

    -----------------------------------------------

    1> 新建HMTgCell.xib

    2> 拽一个需要自定义的控件,摆放其他子控件

    3> 新建一个类

    * 类名要与XIB的名字保持一致

    * 继承自的子类要与XIB中的根节点的类型一致

    4> 要连线之前,需要将XIB的根节点类名修改为刚刚新建的类名

    5> 连线

    6> XIB的属性面板,指定可重用标示符

     

    代码创建Cell的步骤

    -----------------------------------------------

    1> 创建自定义Cell,继承自UITableViewCell

    2> 根据需求,确定控件,并定义属性

    3> getter方法完成控件的实例化,只创建并添加到contentView,不处理位置

    4> 定义一个模型属性,通过setter方法,设置cell的显示

     

    -----------------------------------------------

    1. cellHeight 可以通过Status计算

    解决方法:statusFrame模型,通过setter方法计算行高!

     

    目前存在什么问题?

     

    所有的单元格控件的计算都是重复的,而且每次表格滚动,设置内容都会重新计算。

     

    解决这个问题:

    statusFrame模型中,已经包含了status属性。

     

    目前控制器中的数组保存的是status模型,将status模型替换为statusFrame模型{status,所有控件的位置},同样具有status模型

     

    解决步骤

    1. 将原有的status模型替换为statusFrame模型

    *** 只是修改视图控制器中的代码,暂时不要动cell

     

    *** 重构代码一定要小步来

     

    问题:

    cell中的控件的位置计算,依然是自己计算的。

    解决办法:将cell中的status替换为statusFrame就可以拿到控件位置

     

     

    -----------------------------------------------

    代理模式:是父控件(视图控制器)监听子控件的事件,当子控件发生某些事情时,通知父控件工作!

     

    * footView => controller 去工作,使用代理

    * controller => footView 去工作,直接调用footView的方法即可

  • 相关阅读:
    作业6
    作业8
    作业7
    作业5
    作业4
    作业3
    作业2
    作业1
    浏览器跨域的细节
    解析node-cors模块
  • 原文地址:https://www.cnblogs.com/liqiantu/p/4413482.html
Copyright © 2011-2022 走看看