【作者前言】:分享些本人工作中遇到的點(diǎn)點(diǎn)滴滴那些事兒剂邮,剛開始寫博客摇幻,高手勿噴!以分享交流為主挥萌,歡迎各路豪杰點(diǎn)評(píng)改進(jìn)绰姻!
1.應(yīng)用場(chǎng)景:
很多場(chǎng)合,我們需要判斷滑動(dòng)UITableView時(shí)引瀑,屏幕上對(duì)應(yīng)顯示的是哪個(gè)Cell狂芋,來做一些特殊的處理。
2.實(shí)現(xiàn)目標(biāo):
實(shí)現(xiàn)對(duì)可視Cell的單一處理
3.代碼說明:
1. - (NSArray*)visibleCells;
//UITableView的方法憨栽,這個(gè)最直接帜矾,返回一個(gè)UITableviewcell的數(shù)組。
對(duì)于自定制的cell屑柔,之后的處理可能稍微繁瑣些屡萤。
2.- (NSArray*)indexPathsForVisibleRows;
//UITableview的又一個(gè)方法,這個(gè)比較好用了掸宛,返回一個(gè)NSIndexPath的數(shù)組,可以直接用indexpath.row去調(diào)你的table_related_Array里的數(shù)據(jù)了死陆。比較方便用于自定制的cell。
3.- (CGRect)rectForRowAtIndexPath:(NSIndexPath*)indexPath;
CGRect cellR = [myTV rectForRowAtIndexPath:indx];
if (myTV.contentOffset.y - cellR.origin.y < myCell.frame.size.height || cellR.origin.y - myTV.contentOffset.y >myTV.size.height) {
//這個(gè)時(shí)候myCell應(yīng)該是不在myTV的可視區(qū)域了唧瘾。
} else {//myCell在可視區(qū)域時(shí)措译,業(yè)務(wù)處理
}
//這個(gè)方法可以用在代理回調(diào)較多的設(shè)計(jì)中。
Tip: 1和2在自動(dòng)根據(jù)數(shù)據(jù)伸長(zhǎng)的cell中好像不太準(zhǔn)確饰序。