2015-07-21 48 views
0

我有一個tableview和一些數據填充到tableview。現在我有一個編輯選項,通過點擊該選項,用戶可以通過向上或向下拖動來編輯行的位置。UITableView行重新編譯時重複快速

爲了重新排序的目的,我使用了tableView的委託函數。

例如,這是的tableView數據

Ç

d

現在的問題是,當我點擊編輯按鈕並拖動將最上面的單元格放在最下面並將其放置爲最後一個單元格,然後上下滾動tableView(仍處於編輯模式)底部的單元格(直到目前看到tableView)重複。

現在重新排序到最底部,然後上下滾動和

Ç

d

d

搜索,我發現preapreForReuse後之後,卻不管用。

我正在使用自定義單元格類來呈現表單元格。

class customCell: UITableViewCell {  
init(frame: CGRect) { 
    super.init(style: UITableViewCellStyle.Default, reuseIdentifier: "cell") 
    #add the details 
} 

required init(coder aDecoder: NSCoder) { 
    fatalError("init(coder:) has not been implemented") 
} 

override init(style: UITableViewCellStyle, reuseIdentifier: String?) { 
    super.init(style: style, reuseIdentifier: reuseIdentifier) 
} 
} 

編輯:

override func tableView(tableView: UITableView, moveRowAtIndexPath sourceIndexPath: NSIndexPath, toIndexPath destinationIndexPath: NSIndexPath) { 
    var sdata = self.data[sourceIndexPath.row] 
     self.data.removeAtIndex(sourceIndexPath.row) 
     self.data.insert(sdata, atIndex: destinationIndexPath.row) 
} 

看來很常見的問題,但它不是爲我工作

希望你理解這個問題。

在此先感謝。

+0

用tableview數據源方法實現更新問題。 – Akhilrajtr

回答

0

您是否改變模型以反映變化?如果你的模型在索引3中有D,那麼你將在那裏顯示。

當您將A移動到D時,您還需要更新模型,而不僅僅是表格。

+0

我不明白你的模型是什麼意思? – George

+0

我正在更新模型,並在編輯後保存時顯示。 – George

+0

您從中獲取數據以填寫表格視圖單元格的位置。很多時候它是一個數組。你應該可以在你的表上調用'reloadData'並讓所有的行出現在正確的位置。 – sylvanaar