本效果主要是為了獲得處于UITableView的屏幕中心線(xiàn)或者指定位置的cell并進(jìn)行處理的需求屠升,此效果的技術(shù)點(diǎn)主要在于獲得處于中心線(xiàn)位置的cell盔憨,雖然tableView有方法可以直接獲得處于某坐標(biāo)點(diǎn)的cell,但我還是想用自己的方法去實(shí)現(xiàn)消返,鍛煉一下腦殼子,耘拇,撵颊,,
//UIScrollView代理方法驼鞭,滑動(dòng)過(guò)程中執(zhí)行
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
//獲得UITableView中可見(jiàn)的cell數(shù)組秦驯,如果是奇數(shù)個(gè)的話(huà),取數(shù)組中間的cell挣棕,如果是偶數(shù)個(gè)的話(huà)译隘,就取數(shù)組中間兩個(gè)的其中一個(gè),洛心,
NSArray * array = [tableView visibleCells];
for (UITableViewCell * cell in array) {
cell.backgroundColor = [UIColor orangeColor];
//獲得中心線(xiàn)與cell相對(duì)于屏幕的Y坐標(biāo)之差固耘,若是在cell的高度之內(nèi),并大于0词身,那就是中心線(xiàn)上的cell厅目,
若是想獲得Cell的IndexPath,可以給cell加個(gè)NSIndexPath的屬性,在返回cell的時(shí)候賦值給它
CGFloat cha = self.view.frame.size.height/2 - (cell.frame.origin.y - scrollView.contentOffset.y );
if (cha > 0 && cha < 100) {
cell.backgroundColor = [UIColor greenColor];
}
}
}
***
//系統(tǒng)方法返回處于tableView某坐標(biāo)處的cell的indexPath
[tableView indexPathForRowAtPoint:CGPointMake(0, scrollView.contentOffset.y + tableView.frame.size.height/2)];