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

  • 相关阅读:
    爱她就用python给她画个小心心 ♥(ˆ◡ˆԅ)
    用python画小猪佩奇(非原创)
    (解释文)My SQL中主键为0和主键自排约束的关系
    (细节)My SQL中主键为0和主键自排约束的关系
    My SQL常用操作汇总
    博客搬运同步至腾讯云+社区声明
    mysql在ubuntu中的操作笔记(详)
    vim编辑器操作汇总
    linux常用命令汇总
    在python中单线程,多线程,多进程对CPU的利用率实测以及GIL原理分析
  • 原文地址:https://www.cnblogs.com/zhuyaguang/p/4764406.html
Copyright © 2011-2022 走看看