我已經從我的自定義UITableViewCell類實現了編輯菜單。我有一個從自定義表單元格類中更新表視圖的小問題。什麼是最好的方法來做到這一點?更改後自定義單元格更新uitableview
TIA
澄清:通過編輯菜單我是一個標準的剪切/複製/粘貼...菜單,可與標準UIResponder協議的規定。我想剪切/複製/粘貼單元格內容,這些內容駐留在某些數據結構(文件夾/文件樹的種類)中。單元格實際上只反映數據。
菜單顯示在水龍頭&舉行表格單元格。該表是從UITableViewController派生的,並且是在飛行中創建的(而不是從xib)。對文件夾&文件允許剪切/複製操作,而僅對文件夾允許粘貼操作。其實我只需要刷新文件夾單元格,它顯示了裏面的項目數量。
所以在我的貼選擇CustomCell我做到以下幾點:
- (void)paste:(id)sender {
... Perform a paste of data...
MyTableViewController *myTable = (MyTableViewController *) delegate;
[myTable performSelector:@selector(updateData) withObject:nil afterDelay:0.3];
}
在MyTableViewController:
- (void) updateData
{
[self.tableView reloadData];
}
的事情是,不同之處在於改變了一個所有細胞是重繪。我在cellForRowAtIndex函數中看到它。即使我添加了粘貼選擇器[self setNeedsDisplay]也沒有幫助。
而且,我的自定義單元格覆蓋setHighlighted功能:
- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated {
if (delegate)
[delegate copyableTableViewCell:self willHighlight:highlighted];
[super setHighlighted:highlighted animated:animated];
}
所以委託(MyTableViewController)顯示有一個編輯菜單。 再次,問題是爲什麼更改的單元格不刷新?
謝謝
你的問題是一種模糊的。什麼是「編輯菜單」? UIActionSheet可能,或新的視圖推入導航堆棧? 「更新」是指編輯,添加還是刪除表格視圖單元格?發佈一些代碼,例如表格視圖數據源中的'cellForRowAtIndexPath:'方法也會有所幫助。 – Endemic 2010-05-23 04:47:59