新浪微博的cell开发思路

1. 遇到加载网络图片的时候,内存吃紧的开发思路,释放内存,停止下载图片。

开发代码:

- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application

{

SDWebImageManager *mgr = [SDWebImageManager sharedManager];

// 1.取消下载

[mgr cancelAll];

// 2.清除内存中的所有图片

[mgr.imageCache clearMemory];

}

2. -(void)layoutSubviews;方法是自己的尺寸被修改的时候,自己会继续调用,所以方法里不能再次修改自己的尺寸,会造成死循环。

3. 目的:想在系统计算和设置完按钮的尺寸后,再修改一下尺寸,可以重写frame方法

- (void)setFrame:(CGRect)frame {

    frame.size.width += 10;

    [super setFrame:frame];

}

拦截所有的frame的设置,优先级是最高的。

4. titleView是一个特殊的控件,会把自己两边的范围也当作自己的范围,系统设置的,子控件超出父控件的范围的时候,是不能点击的。

5. cell类型:原创微博文字和6张图片,文字和9张图片,转发,只有文字,转发也是只有文字。

6. 微博转发别人的图片以后,就不能再发图片了,只能发文字。

7. 开发思路:

    1)首先将cell能够出现的所有的情况,都整理出来。

    2)需要用的控件全部加载出来,控制他的显示和隐藏。

    3)不论是否转发微博,都有头像,名称,时间,来源,文字,五个元素,微博必须有文字。

    4)UIView是轻量级的,UIButton,UITableView,...是重量级的。

8. 新浪微博cell开发分三大块:原创微博一个view上,转发微博一个view上,工具条一个view上。

9. 新浪微博的四种cell: 1. 原创微博只有文字和工具条,2.原创微博有文字也有图片和工具条,3.转发微博只有文字和工具条,4.转发微博有文字也有图片和工具条。

10. 自定义cell的步骤(每个cell的高度不一样,每个cell里面显示的内容也不一样)

1)新建一个继承自UITableViewCell的子类

2)在initWithStyle:方法中进行子控件的初始化

1>将有可能显示的所有子控件都添加到contentView中

2>顺便设置子控件的一些属性(一次性的设置:字体、文字颜色、背景)

3.提供2个模型

1 >一个是数据模型(文字数据+图片数据)

2>一个是frame模型(数据模型+所有子控件的frame+cell的高度)

4.cell应该提供一个frame模型属性

1>将frame模型传递给cell

2>cell根据frame模型给子控件设置frame,根据数据模型给子控件设置数据

3>cell根据数据模型决定显示和隐藏哪些子控件

5.在tableView的代理方法返回cell的高度

11. 自定义cell建议手写代码,xib局限很大。

12. 安卓开发工具支持局部替换。

13. 模型传给view,view将模型拆开,显示和处理。

14. 一个YUStatusFrame模型里面包含的信息:

1)存放着一个cell内部所有子控件的frame数据。

2)存放着一个cell的高度。

3)存放着一个数据模型(根据数据模型计算尺寸和高度)。

15. 自定义的cell中的YUStatusFrame模型声明属性的时候,不能写成frame属性名,这样会覆盖掉系统的frame属性,最后就不能设置位置和尺寸了。

16. 左上角开始计算。

17. 

你可能感兴趣的:(新浪微博的cell开发思路)