zoukankan      html  css  js  c++  java
  • 关于自定义cell——15-05-13

    通过代码创建cell

    1.新建一个继承自UITableViewCell的类

    2.重写initWithStyle:reuseIdentifier:方法

    Ø添加所有需要显示的子控件(不需要设置子控件的数据和frame,  子控件要添加到contentView中)
    Ø进行子控件一次性的属性设置(有些属性只需要设置一次, 比如字体固定的图片)

    3.提供2个模型

    Ø数据模型: 存放文字数据图片数据
    Øframe模型: 存放数据模型所有子控件的framecell的高度

    4.cell拥有一个frame模型(不要直接拥有数据模型)

    5.重写frame模型属性的setter方法: 在这个方法中设置子控件的显示数据和frame

    6.frame模型数据的初始化已经采取懒加载的方式(每一个cell对应的frame模型数据只加载一次)

    获得字体的frame大小的对象方法 

     NSDictionary *attrs = @{NSFontAttributeName : font};先获得字体字典

    [text boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:attrs context:nil]  maxSize为该字体能显示的最大size

    不一定显示的view可以通过if进行判断然后hidden改变显示状态

        if (status.picture) { // 有配图
            self.pictureView.hidden = NO;
            self.pictureView.image = [UIImage imageNamed:status.picture];
        } else { // 没有配图
            self.pictureView.hidden = YES;
        }  

    时刻要记得tableview的各方法调用顺序——还有循环利用缓存池时要注意其中的控件是否隐藏——要注意性能,只加载一次的别放在多次调用的方法里      

  • 相关阅读:
    iframe子页面获取父页面元素和window对象
    jQuery使用blur()方法触发两次的解决方法
    java使用freemarker生成word
    java实现下载文件
    IE11中实现颜色渐变
    MYSQL中INET_ATON()函数
    数据库SQL实战(1)
    MYSQL表中向SET类型的字段插入值时值之间不能有空格
    MYSQL表中设置字段类型为TIMESTAMP时的注意事项
    SQL中判断值是否为NULL
  • 原文地址:https://www.cnblogs.com/tusiji7/p/4501783.html
Copyright © 2011-2022 走看看