場景1:
我的TableView的Cell有三種樣式,但是我只創(chuàng)建一種cell想實(shí)現(xiàn)三種cell的樣式,就會遇到問題。
比如cell中有3個(gè)imageView 我全部都顯示出來, 但是由于重用池機(jī)制會當(dāng)這個(gè)cell消失其他cell再出現(xiàn)的時(shí)候 我只想顯示1張圖片 其他兩個(gè)imageView沒有賦值,但是仍然顯示3個(gè)圖片。
這個(gè)問題就是因?yàn)橹赜贸氐脑颍貙?/p>
- (void)prepareForReuse
{
[super prepareForReuse];
}
方法可解決這個(gè)問題
場景2:
未知原因不創(chuàng)建tableView的Cell, 有以下幾種可能,
1、沒簽協(xié)議
2、沒設(shè)置代理
3、cell的高度是0 也會不走
4、數(shù)據(jù)沒有刷新
場景3:
tableView的section的header無法返回自定義view
如果想返回自定義view需要和cell一樣注冊一個(gè)重用池
場景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第一行的顯示需要,這又帶來了另外一個(gè)問題,下拉刷新的View的frame也隨之發(fā)生了改變,導(dǎo)致整個(gè)下拉刷新不可用了。
self.automaticallyAdjustsScrollViewInsets 這個(gè)屬性是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多余分割線隱藏的問題
有時(shí)候下面的cell我們沒用,但是還是有分割線,隱藏方法
[tableView setTableFooterView:[[UIView alloc] init]];
場景9:關(guān)于tableView的headerCell之間有間距的問題
這是由于tableView的style設(shè)置錯(cuò)誤,前一種是UITableViewStylePlain,后一種是UITableViewStyleGrouped
要注意對style的理解,不是tableView有很多section就要選擇UITableViewStyleGrouped,UITableViewStyleGrouped只是展現(xiàn)tableView的一種樣式而已,與section有幾個(gè)無關(guān)
場景10:關(guān)于select和Deselect的問題
這個(gè)問題純眼拙~
選擇和取消選擇,方法名字長,細(xì)心細(xì)心再細(xì)心,不然一旦出錯(cuò),調(diào)bug想不到是這出錯(cuò)真的會很辛苦~
場景11:隱藏單行分割線
cell.separatorInset = UIEdgeInsetsMake(0, 屏幕寬, 0, 0);