[self.myTable setEditing:YES animated:YES];
此時TableView會長這樣
這不是我們要的效果,我們只要編輯順序,而不是編輯或刪除資料本身。
所以要實作下列二個method
// 讓TableView可以排序
- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath {
// Return NO if you do not want the item to be re-orderable.
return YES;
}
// 實際排序的方式
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath {
MyDataItem *dataDict = [self.myDataSource objectAtIndex:fromIndexPath.row];
[self.myDataSource removeObject:dataDict];
[self.myDataSource insertObject:dataDict atIndex:toIndexPath.row];
}
作到這邊,的確是可以正確排序,但是~討厭的delete icon還是會出現在cell左側,要解決此狀況請再添加如下代碼
// 讓Editing狀態下的TableCell不要出現紅色delete icon
- (UITableViewCellEditingStyle)tableView:(UITableView *)aTableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
// The editing style for a row is the kind of button displayed to the left of the cell when in editing mode.
return UITableViewCellEditingStyleNone;
}
參考資料
沒有留言:
張貼留言