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的方法即可

  • 相关阅读:
    质量属性分析之《淘宝网》
    每日总结(3.7)
    每日总结(3.6)
    读架构漫谈有感
    每日总结(3.5)
    每日总结(3.4)
    laravel 输出时间少了8小时
    laravel 循环添加新的数据之后如何排序
    php trait使用详解
    laravel Guzzle使用
  • 原文地址:https://www.cnblogs.com/liqiantu/p/4413482.html
Copyright © 2011-2022 走看看