場景1:
我的TableView的Cell有三種樣式笤虫,但是我只創(chuàng)建一種cell想實現(xiàn)三種cell的樣式穆碎,就會遇到問題畜埋。
比如cell中有3個imageView 我全部都顯示出來熙掺, 但是由于重用池機制會當(dāng)這個cell消失其他cell再出現(xiàn)的時候 我只想顯示1張圖片 其他兩個imageView沒有賦值现恼,但是仍然顯示3個圖片。
這個問題就是因為重用池的原因奢驯,重寫
- (void)prepareForReuse
{
[super prepareForReuse];
}
方法可解決這個問題
場景2:
未知原因不創(chuàng)建tableView的Cell申钩, 有以下幾種可能次绘,
1瘪阁、沒簽協(xié)議
2、沒設(shè)置代理
3邮偎、cell的高度是0 也會不走
4管跺、數(shù)據(jù)沒有刷新
場景3:
tableView的section的header無法返回自定義view
如果想返回自定義view需要和cell一樣注冊一個重用池
場景4:
tableView的樣式顯示不正確。
需要在layoutSubView方法中設(shè)置tableView中的各種樣式禾进,
如果寫在這里仍然不對一定是沒寫[super layoutSubViews]方法
場景5:
想更改系統(tǒng)的tableVIewCell的各種控件位置什么的豁跑,需要重寫tableViewCell的類;
場景6: Tableview的Cell在ios7系統(tǒng)下不能置頂,空出幾行
解決辦法在viewdidload里面加入self.automaticallyAdjustsScrollViewInsets = NO
如果沒有設(shè)置self.automaticallyAdjustsScrollViewInsets = NO泻云,那么iOS7下會自動讓scrollView滑動多次艇拍,以滿足UITableView第一行的顯示需要狐蜕,這又帶來了另外一個問題,下拉刷新的View的frame也隨之發(fā)生了改變卸夕,導(dǎo)致整個下拉刷新不可用了层释。
self.automaticallyAdjustsScrollViewInsets 這個屬性是IOS7才有的新方法,目的就是為了讓scrollView自動適應(yīng)屏幕快集,如果self.automaticallyAdjustsScrollViewInsets = NO贡羔。
場景7:關(guān)于tableView左邊空余15像素的問題;
左邊總有空余的地方
解決方法:
[self.tableView setSeparatorInset:UIEdgeInsetsZero];
[self.tableView setLayoutMargins:UIEdgeInsetsZero];
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
if ([cell respondsToSelector:@selector(setSeparatorInset:)]) {
[cell setSeparatorInset:UIEdgeInsetsZero];
}
if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {
[cell setLayoutMargins:UIEdgeInsetsZero];
}
}
場景8:關(guān)于tableView多余分割線隱藏的問題
有時候下面的cell我們沒用个初,但是還是有分割線乖寒,隱藏方法
[tableView setTableFooterView:[[UIView alloc] init]];
場景9:關(guān)于tableView的headerCell之間有間距的問題
這是由于tableView的style設(shè)置錯誤,前一種是UITableViewStylePlain院溺,后一種是UITableViewStyleGrouped
要注意對style的理解楣嘁,不是tableView有很多section就要選擇UITableViewStyleGrouped币叹,UITableViewStyleGrouped只是展現(xiàn)tableView的一種樣式而已子巾,與section有幾個無關(guān)
場景10:關(guān)于select和Deselect的問題
這個問題純眼拙~
選擇和取消選擇,方法名字長窟坐,細(xì)心細(xì)心再細(xì)心弄息,不然一旦出錯痊班,調(diào)bug想不到是這出錯真的會很辛苦~
場景11:隱藏單行分割線
cell.separatorInset = UIEdgeInsetsMake(0, 屏幕寬, 0, 0);