国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

長按Cell進(jìn)行選擇

2019-11-14 18:48:50
字體:
供稿:網(wǎng)友

新手,勿噴~

----------------------------------------------------------------------------------------------------------------------------------------------------------------

最近這幾天做了一個長按Cell刪除的功能。

添加了一個UILongPRessGestureRecognizer長按手勢,在手勢的方法里,直接寫

if (sender.state == UIGestureRecognizerStateBegan) {

}
然而再這個時候遇到了問題,我用下邊的辦法找到了cell的indexPath

 CGPoint point = [sender locationInView:self.tableView];
 NSIndexPath * indexPath = [self.tableView indexPathForRowAtPoint:point];

問題來了,平時我都是實例化一個cell,然后用indexPath.section和indexPath.row來確定不同位置的cell,給其加載數(shù)據(jù)。但是現(xiàn)在我只知道indexPath,怎么才能找到它所對應(yīng)的cell。額,難倒了我這個初學(xué)者,第一次遇到這種問題。后來看到了- (NSArray *)visibleCells;  這個方法是用來獲取屏幕上顯示的所有cell.

So happy,通過indexPath.row獲取cell,終于搞定。

NSArray *cells = [self.tableView visibleCells];
MapTableViewCell *cell = cells[indexPath.row];

前幾個cell沒有任何問題。然而當(dāng)表示圖開始滾動以后,再選擇cell,就遭遇了各種崩潰。糾結(jié)了很久,發(fā)現(xiàn)崩潰的原因很簡單,數(shù)組越界。因為indexPath是遞增的,而cell的個數(shù)是固定的,自然而然,indexPath.row大于cell.count了。解決辦法很easy,cell.tag = indexPath.row; 找到癥結(jié),解決麻煩!

 if (sender.state == UIGestureRecognizerStateBegan) {
        CGPoint point = [sender locationInView:self.tableView];
        NSIndexPath * indexPath = [self.tableView indexPathForRowAtPoint:point];
        if(indexPath == nil) return ;
        
        NSArray *cells = [self.tableView visibleCells];
        NSInteger tag = ((UITableViewCell *)[cells firstObject]).tag;
        UITableViewCell *cell = cells[indexPath.row - tag];
    }
最后的結(jié)果就變成了這個樣子,我拿到了長按手勢點擊的cell。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 文安县| 林西县| 铁力市| 青冈县| 达尔| 郸城县| 甘谷县| 左云县| 泗洪县| 宣恩县| 小金县| 简阳市| 武隆县| 镇康县| 府谷县| 牟定县| 繁峙县| 沙湾县| 老河口市| 抚远县| 宜城市| 涞水县| 禹州市| 乌拉特前旗| 西宁市| 射阳县| 信阳市| 南江县| 丹棱县| 亚东县| 广东省| 铅山县| 鄂州市| 拜泉县| 同江市| 石首市| 鸡泽县| 通江县| 利川市| 宜州市| 华蓥市|