我在UITableView上使用滑動手勢。我試圖在向左滑動時在TableViewCell上執行操作。我注意到正確的細胞被刷過,但由於某種原因,它似乎激活了一個隨機的其他細胞。左手滑動手勢無法正常工作。 UITableView
我懷疑它與指針有什麼關係?內存指針我不太好,所以任何幫助都會很棒。處理該輕掃的代碼是:
- (void)handleSwipeLeft:(UISwipeGestureRecognizer *)gestureRecognizer
{
// Get location of the swipe
CGPoint location = [gestureRecognizer locationInView:self.requestTableView];
// Get the corresponding index path within the table view
NSIndexPath *indexPath = [self.requestTableView indexPathForRowAtPoint:location];
// Check if index path is valid
if(indexPath)
{
//Get the cell out of the table view
requestCell *cell = (requestCell *)[self.requestTableView cellForRowAtIndexPath:indexPath];
NSLog(@"%@", [cell.IDLabel text]);
cell.sendingImage.hidden = false;
cell.activityIndicator.hidden = false;
cell.requestorLabel.hidden = true;
cell.dueDateLabel.hidden = true;
cell.IDLabel.hidden = true;
cell.priorityImage.hidden = true;
}
}
應該是一個相當簡單的測試假設:添加一些代碼來記錄位置,並在幾個不同的滾動位置上滑動同一個單元格。同時滑動幾個不同的單元格滾動到相同的屏幕位置。 –
感謝您的意見。我會考慮直接操縱數據模型。然而,我做了一個記錄什麼單元格被刷過。它確實返回我滑過的右側細胞。該操作在滑動的單元格上表現良好,但由於某些原因,它還會導致另一個不在屏幕上的單元格將狀態更改爲正在滑動。感謝您的意見! – Alan
也許那麼問題在於,當它被重用時,你沒有完全重置單元格的內容? @Steffan Blass是正確的,發生了這種情況。如果你的代碼(如圖所示)只在滑動時操縱單元格的狀態,當你滾動表格時會發生什麼? (該單元格將不在視圖中,然後被重新用於不同的索引路徑....) –