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.