1. 遇到加載網(wǎng)絡(luò)圖片的時(shí)候,內(nèi)存吃緊的開(kāi)發(fā)思路,釋放內(nèi)存,停止下載圖片。
開(kāi)發(fā)代碼:
- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application
{
SDWebImageManager *mgr = [SDWebImageManager sharedManager];
// 1.取消下載
[mgr cancelAll];
// 2.清除內(nèi)存中的所有圖片
[mgr.imageCache clearMemory];
}
2. -(void)layoutSubviews;方法是自己的尺寸被修改的時(shí)候,自己會(huì)繼續(xù)調(diào)用,所以方法里不能再次修改自己的尺寸,會(huì)造成死循環(huán)。
3. 目的:想在系統(tǒng)計(jì)算和設(shè)置完按鈕的尺寸后,再修改一下尺寸,可以重寫frame方法
- (void)setFrame:(CGRect)frame {
? ? frame.size.width += 10;
? ? [super setFrame:frame];
}
攔截所有的frame的設(shè)置,優(yōu)先級(jí)是最高的。
4. titleView是一個(gè)特殊的控件,會(huì)把自己兩邊的范圍也當(dāng)作自己的范圍,系統(tǒng)設(shè)置的,子控件超出父控件的范圍的時(shí)候,是不能點(diǎn)擊的。
5. cell類型:原創(chuàng)微博文字和6張圖片,文字和9張圖片,轉(zhuǎn)發(fā),只有文字,轉(zhuǎn)發(fā)也是只有文字。
6. 微博轉(zhuǎn)發(fā)別人的圖片以后,就不能再發(fā)圖片了,只能發(fā)文字。
7. 開(kāi)發(fā)思路:
? ? 1)首先將cell能夠出現(xiàn)的所有的情況,都整理出來(lái)。
? ? 2)需要用的控件全部加載出來(lái),控制他的顯示和隱藏。
? ? 3)不論是否轉(zhuǎn)發(fā)微博,都有頭像,名稱,時(shí)間,來(lái)源,文字,五個(gè)元素,微博必須有文字。
? ? 4)UIView是輕量級(jí)的,UIButton,UITableView,...是重量級(jí)的。
8. 新浪微博cell開(kāi)發(fā)分三大塊:原創(chuàng)微博一個(gè)view上,轉(zhuǎn)發(fā)微博一個(gè)view上,工具條一個(gè)view上。
9. 新浪微博的四種cell: 1. 原創(chuàng)微博只有文字和工具條,2.原創(chuàng)微博有文字也有圖片和工具條,3.轉(zhuǎn)發(fā)微博只有文字和工具條,4.轉(zhuǎn)發(fā)微博有文字也有圖片和工具條。
10. 自定義cell的步驟(每個(gè)cell的高度不一樣,每個(gè)cell里面顯示的內(nèi)容也不一樣)
1)新建一個(gè)繼承自UITableViewCell的子類
2)在initWithStyle:方法中進(jìn)行子控件的初始化
1>將有可能顯示的所有子控件都添加到contentView中
2>順便設(shè)置子控件的一些屬性(一次性的設(shè)置:字體、文字顏色、背景)
3.提供2個(gè)模型
1 >一個(gè)是數(shù)據(jù)模型(文字?jǐn)?shù)據(jù)+圖片數(shù)據(jù))
2>一個(gè)是frame模型(數(shù)據(jù)模型+所有子控件的frame+cell的高度)
4.cell應(yīng)該提供一個(gè)frame模型屬性
1>將frame模型傳遞給cell
2>cell根據(jù)frame模型給子控件設(shè)置frame,根據(jù)數(shù)據(jù)模型給子控件設(shè)置數(shù)據(jù)
3>cell根據(jù)數(shù)據(jù)模型決定顯示和隱藏哪些子控件
5.在tableView的代理方法返回cell的高度
11. 自定義cell建議手寫代碼,xib局限很大。
12. 安卓開(kāi)發(fā)工具支持局部替換。
13. 模型傳給view,view將模型拆開(kāi),顯示和處理。
14. 一個(gè)YUStatusFrame模型里面包含的信息:
1)存放著一個(gè)cell內(nèi)部所有子控件的frame數(shù)據(jù)。
2)存放著一個(gè)cell的高度。
3)存放著一個(gè)數(shù)據(jù)模型(根據(jù)數(shù)據(jù)模型計(jì)算尺寸和高度)。
15. 自定義的cell中的YUStatusFrame模型聲明屬性的時(shí)候,不能寫成frame屬性名,這樣會(huì)覆蓋掉系統(tǒng)的frame屬性,最后就不能設(shè)置位置和尺寸了。
16. 左上角開(kāi)始計(jì)算。
17.?