0
我一直在試圖調試這個小時現在,我還沒有看到任何人在網上有相同的問題。UITableView編輯 - 減去只有按下水龍頭和按住
我有刪除功能如預期般工作,然後添加一些代碼後,神祕的減號按鈕停止運作。起初,我以爲他們根本沒有工作,但後來發現,如果我持續5秒鐘左右點擊它,它會轉動並顯示刪除按鈕,就像它應該。
桌面上有一些手勢,但沒有LongPress手勢。這些單元格是自定義單元格,但是當我第一次使用它時不會引起問題。任何幫助表示讚賞。以下是相關的代碼:
///
/// Pushes detail view for item swiped
///
- (IBAction)cellSwipeLeft:(UISwipeGestureRecognizer *)sender {
if (sender.state == UIGestureRecognizerStateEnded && ![self isEditing]) {
NSIndexPath *gestureIndexPath = [self modelIndexPathForIndexPath:[self indexPathForUIGestureRecognizer:sender]];
// swiped left
}
}
///
/// Checks off reminder in list
///
- (IBAction)cellSwipeRight:(UISwipeGestureRecognizer *)sender {
if (sender.state == UIGestureRecognizerStateEnded && ![self isEditing]) {
NSIndexPath *gestureIndexPath = [self modelIndexPathForIndexPath:[self indexPathForUIGestureRecognizer:sender]];
//swiped right
}
}
- (IBAction)cellTap:(UITapGestureRecognizer *)sender {
if (sender.state == UIGestureRecognizerStateEnded && ![self.tableView isEditing]) {
NSIndexPath *gestureIndexPath =
[self modelIndexPathForIndexPath:[self indexPathForUIGestureRecognizer:sender]];
// push detail view
}
}
///
/// Makes tableview rows editable
///
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
return YES;
}
///
/// Returns editing style of tableview
///
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
return UITableViewCellEditingStyleDelete;
}
///
/// Toggles tableview editing
///
- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
[super setEditing:editing animated:animated];
[self.tableView setEditing:editing animated:animated];
}
///
/// Deletes selected rows
///
- (void)tableView:(UITableView *)tableView
commitEditingStyle:(UITableViewCellEditingStyle)editingStyle
forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (editingStyle == UITableViewCellEditingStyleDelete)
{
[self deleteReminderAtIndexPath:indexPath];
// Animate deletion
NSArray *indexPaths = [NSArray arrayWithObject:indexPath];
[[self tableView] deleteRowsAtIndexPaths:indexPaths
withRowAnimation:UITableViewRowAnimationAutomatic];
}
}
爲什麼你使用tap識別器而不是'-tableView:didSelectRowAtIndexPath:'?你能告訴你如何設置手勢識別器嗎? – danielbeard
謝謝!這指出我在找出輕拍姿勢問題的正確方向。雖然我無法得到didSelectRowAtIndexPath:也很好地工作。單元格上的一個簡單的輕擊不會調用該方法。我將繼續研究下一個 – user1869469
您必須將'UITableView'委託屬性設置爲您的視圖控制器。 – danielbeard