zoukankan      html  css  js  c++  java
  • ios- 自定义cell总结

    1. 问题分析

     

    1> 图太大

    2> 字太小

    3> 钱数&购买人数不整齐

    4> 图片太紧,没有间隙,大小不一致

    ......

     

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

     

    解决方法 —— 自定义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的方法即可

  • 相关阅读:
    DSP Builder设计一个滤波器
    Modelsim 10.0 对Altera FFT IP 进行仿真
    FPGA内部计算小数
    TIOBE 2012年3月编程语言排行榜:JS超越Perl和Python
    转载 10个新鲜的Ajax相关的jQuery插件
    转载 使用HTML5、CSS3和jQuery增强网站用户体验
    转载 Java堆内存的10个要点
    累 腾讯笔试
    python 浮点数取整
    转载 一个页面重构工程师眼中的“用户体验”
  • 原文地址:https://www.cnblogs.com/zhuyaguang/p/4764406.html
Copyright © 2011-2022 走看看