1. 遇到加載網(wǎng)絡圖片的時候,內(nèi)存吃緊的開發(fā)思路嗤疯,釋放內(nèi)存肯夏,停止下載圖片。
開發(fā)代碼:
- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application
{
SDWebImageManager *mgr = [SDWebImageManager sharedManager];
// 1.取消下載
[mgr cancelAll];
// 2.清除內(nèi)存中的所有圖片
[mgr.imageCache clearMemory];
}
2. -(void)layoutSubviews;方法是自己的尺寸被修改的時候烁试,自己會繼續(xù)調(diào)用,所以方法里不能再次修改自己的尺寸雇初,會造成死循環(huán)。
3. 目的:想在系統(tǒng)計算和設置完按鈕的尺寸后减响,再修改一下尺寸靖诗,可以重寫frame方法
- (void)setFrame:(CGRect)frame {
? ? frame.size.width += 10;
? ? [super setFrame:frame];
}
攔截所有的frame的設置,優(yōu)先級是最高的支示。
4. titleView是一個特殊的控件刊橘,會把自己兩邊的范圍也當作自己的范圍,系統(tǒng)設置的悼院,子控件超出父控件的范圍的時候伤为,是不能點擊的。
5. cell類型:原創(chuàng)微博文字和6張圖片据途,文字和9張圖片绞愚,轉(zhuǎn)發(fā),只有文字颖医,轉(zhuǎn)發(fā)也是只有文字位衩。
6. 微博轉(zhuǎn)發(fā)別人的圖片以后,就不能再發(fā)圖片了熔萧,只能發(fā)文字糖驴。
7. 開發(fā)思路:
? ? 1)首先將cell能夠出現(xiàn)的所有的情況,都整理出來佛致。
? ? 2)需要用的控件全部加載出來贮缕,控制他的顯示和隱藏。
? ? 3)不論是否轉(zhuǎn)發(fā)微博俺榆,都有頭像感昼,名稱,時間罐脊,來源定嗓,文字蜕琴,五個元素,微博必須有文字宵溅。
? ? 4)UIView是輕量級的凌简,UIButton,UITableView,...是重量級的。
8. 新浪微博cell開發(fā)分三大塊:原創(chuàng)微博一個view上恃逻,轉(zhuǎn)發(fā)微博一個view上雏搂,工具條一個view上。
9. 新浪微博的四種cell: 1. 原創(chuàng)微博只有文字和工具條辛块,2.原創(chuàng)微博有文字也有圖片和工具條畔派,3.轉(zhuǎn)發(fā)微博只有文字和工具條,4.轉(zhuǎn)發(fā)微博有文字也有圖片和工具條润绵。
10. 自定義cell的步驟(每個cell的高度不一樣线椰,每個cell里面顯示的內(nèi)容也不一樣)
1)新建一個繼承自UITableViewCell的子類
2)在initWithStyle:方法中進行子控件的初始化
1>將有可能顯示的所有子控件都添加到contentView中
2>順便設置子控件的一些屬性(一次性的設置:字體、文字顏色尘盼、背景)
3.提供2個模型
1 >一個是數(shù)據(jù)模型(文字數(shù)據(jù)+圖片數(shù)據(jù))
2>一個是frame模型(數(shù)據(jù)模型+所有子控件的frame+cell的高度)
4.cell應該提供一個frame模型屬性
1>將frame模型傳遞給cell
2>cell根據(jù)frame模型給子控件設置frame憨愉,根據(jù)數(shù)據(jù)模型給子控件設置數(shù)據(jù)
3>cell根據(jù)數(shù)據(jù)模型決定顯示和隱藏哪些子控件
5.在tableView的代理方法返回cell的高度
11. 自定義cell建議手寫代碼,xib局限很大卿捎。
12. 安卓開發(fā)工具支持局部替換配紫。
13. 模型傳給view,view將模型拆開午阵,顯示和處理躺孝。
14. 一個YUStatusFrame模型里面包含的信息:
1)存放著一個cell內(nèi)部所有子控件的frame數(shù)據(jù)。
2)存放著一個cell的高度底桂。
3)存放著一個數(shù)據(jù)模型(根據(jù)數(shù)據(jù)模型計算尺寸和高度)植袍。
15. 自定義的cell中的YUStatusFrame模型聲明屬性的時候,不能寫成frame屬性名籽懦,這樣會覆蓋掉系統(tǒng)的frame屬性于个,最后就不能設置位置和尺寸了。
16. 左上角開始計算暮顺。
17.?