我有一個視圖有7個tableView代表一週的7天。每個的tableView被初始化標籤從0到6我做的細胞longPressure識別器來獲得訪問權的tableView:當我按標籤顯示正確的電池tableView標記錯誤moveRowAtIndexPath方法後
- (IBAction)longPress:(UIGestureRecognizer *)sender {
self.clickedPoint = [sender locationInView:self.view];
// get most down subView user clicked
UIView *clickedSubView = [self.view hitTest:self.clickedPoint withEvent:nil];
if([clickedSubView.superview isKindOfClass:[customCell class]]) {
// get selected tableView
UITableView *selectedTableView = (UITableView*)clickedSubView.superview.superview;
NSLog(@"Selected tag: %d", selectedTableView.tag);
}
}
。問題是當我在tableView中移動行時。當我做moveRowAtIndexPath:在tableView和longPress中,我創建moveRow的tableView的標籤總是獲得另一個tableView的最後一個longPress的標籤。
實施例:
我moveRow在表與標籤2然後,只需長按表與標籤5.然後返回到標籤2的長按表,但是這一次將(之前的一個)日誌標籤= 5。如果longPress表的標籤爲1,則返回longPress「標籤2的表格」(假設爲),並記錄標籤1,它應該是標籤2的地方。
我讀過beginUpdates使標籤丟失並且這是重新加載所必需的。所以我試過這個:
// reload the tableView after moveRowAtIndexPath method
selectedTableView reloadData];
// also tried refresh the view that contains all the tableViews
[[self getWeekView] setNeedsDisplay];
// and also tried to set the tag again after moveRowAtIndexPath method
selectedTableView.tag = index;
沒什麼用。我還懷疑是否發生了clickedSubView事件,如果我正在獲得正確的hitTest視圖,但是我用彩色邊框測試了它,它獲得了正確的視圖,只有在moveRowAtIndexPath方法後面有錯誤的標記。
謝謝大家!
謝謝! – lopes710
@Aniket Kote你能告訴我,什麼時候應該爲自定義單元的標籤設置值?如果我將索引位置4的行移動到0,那麼標籤將更改爲索引4行。 – Ganesh