【作者前言】:分享些本人工作中遇到的點點滴滴那些事兒,剛開始寫博客,高手勿噴!以分享交流為主,歡迎各路豪杰點評改進!
1.應用場景:
很多場合,我們需要判斷滑動UITableView時,屏幕上對應顯示的是哪個Cell,來做一些特殊的處理。
2.實現目標:
實現對可視Cell的單一處理
3.代碼說明:
1. - (NSArray*)visibleCells;
//UITableView的方法,這個最直接,返回一個UITableviewcell的數組。
對于自定制的cell,之后的處理可能稍微繁瑣些。
2.- (NSArray*)indexPathsForVisibleRows;
//UITableview的又一個方法,這個比較好用了,返回一個NSIndexPath的數組,可以直接用indexpath.row去調你的table_related_Array里的數據了。比較方便用于自定制的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) {
//這個時候myCell應該是不在myTV的可視區域了。
} else {//myCell在可視區域時,業務處理
}
//這個方法可以用在代理回調較多的設計中。
Tip: 1和2在自動根據數據伸長的cell中好像不太準確。