前言:
最近做商城項目時候,做到tableViewCell
的展開和收縮的時候遇到一個問題,就是當(dāng)一行在 tableview 底部時候, tableview 默認(rèn)是不是會上移的,這樣展開的內(nèi)容就會被遮擋,看不到效果,出現(xiàn)的問題如下圖:
Untitled02.gif
想實現(xiàn)的效果是:如果展開的是一列在 tableView 的底部的時候,tableView 會自動上移,這樣就可以看到展開的內(nèi)容,效果如:
Untitled01.gif
分析:
我項目中實現(xiàn)的思路是 購買套餐
是個 label 然后加了點(diǎn)擊手勢來監(jiān)聽點(diǎn)擊事件的,然后可以拿到點(diǎn)擊的位置,判斷在是不是在 tableView 的最后一行的范圍內(nèi),如在的話就讓 tableview 上移一個列的高度
具體的實現(xiàn)代碼:
CGPoint point = [recognizer locationInView:self.tableView];
CGFloat point_y = point.y;
// 96 是每組的高度
if (point_y > self.tableView.frame.size.height - 96) { // 點(diǎn)擊是最最后一行
// 每組下的分行的高度是 60 加上間隔和"購買服務(wù)"幾個字的高度 = 80
[self.tableView setContentOffset:CGPointMake(0, self.tableView.contentOffset.y + 80)];
}