標籤:style blog class code color string cti rgb line type com
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:( NSIndexPath *)indexPath { returnUITableViewCellEditingStyleDelete; } - ( void )tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:( NSIndexPath *)indexPath { if (editingStyle == UITableViewCellEditingStyleDelete) { [ self .items removeObjectAtIndex:indexPath.row]; [tableView reloadData]; } } - ( void )tableView:(UITableView *)tableView didSelectRowAtIndexPath:( NSIndexPath *)indexPath { NSLog (@ "Row %@ tapped." , self .items[indexPath.row]); } 在ios6環境下,上段代碼運行正常。但是在ios7環境下,我做了如下操作:當tableview中的一行被刪除並更新tablview後,被刪除行的下一行的點擊事件將被忽略,導致點擊該行無反應(<span style= "color: rgb(255, 0, 0);" >雙擊才有反應</span>)。很奇怪是不是,下面將解釋原因。 當tableview中的某行被選中刪除後,tableview將處於編輯(editing)狀態,所以你需要將tableview中的狀態更換成選擇(selection)模式,更改代碼如下: - ( void )tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:( NSIndexPath *)indexPath { if (editingStyle == UITableViewCellEditingStyleDelete) { [ self .items removeObjectAtIndex:indexPath.row]; // Turn off editing state here tableView.editing = NO ; [tableView reloadData]; } } |