0
からアイテムを取り消し、私は次のコードを持っている:これは聞かせてインデックスは= selectedIndexPaths.indexOf(indexPath.row)選択解除し、アレイ
場合 :
var selectedIndexPaths = [NSDate]()
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
let cell = collectionView.cellForItemAtIndexPath(indexPath) as? PartExpense
if cell?.selected == true {
cell?.layer.borderWidth = 4.0
cell?.layer.borderColor = UIColor.greenColor().CGColor
selectedIndexPaths.append(cell!.idPartecipant)
print(selectedIndexPaths)
}
}
func collectionView(collectionView: UICollectionView, didDeselectItemAtIndexPath indexPath: NSIndexPath) {
let cell = collectionView.cellForItemAtIndexPath(indexPath)
if cell?.selected == false {
cell?.layer.borderColor = UIColor.clearColor().CGColor
if let index = selectedIndexPaths.indexOf(indexPath.row) {
selectedIndexPaths.removeAtIndex(index)
print(selectedIndexPaths)
}
}
}
すべてがラインまでうまくいきますエラー: "Int型の値を期待した型NSDateに変換できません"これを行うにはどうすればよいですか?このエラーを回避するために、どのように配列を変換できますか?
この特定の要素idPartecipantは、coreDataで格納されたNsdateである必要があります。行の選択を解除すると、要素が削除されている必要があります。 – user1679705
データの元のデータソース(cellForItemAtIndexPathで使用されている配列)を検索することによって、選択解除された日付を最初に検索します。あなたが選択解除されたものを持っていたらdeselectedDataを許可すれば、その日のために をおselectedIndexPaths配列を検索:NSDate = dataSouce [indexPath.row] { 指数= selectedIndexPaths.indexOf(deselectedData){ selectedIndexPaths.removeAtIndex(インデックス)を聞かせている場合 } }あなたのコードで –
を選択したときに時々このエラーが表示されます。「致命的なエラー:インデックスが範囲外です」 – user1679705