从collectionView

时间:2016-04-24 16:21:20

标签: swift uitableview core-data

我有一个由Coredata的Entity(tempPrice)填充的表和一个由另一个Entity(Participants)填充的CollectionView。如果集合的参与者=对tempPrice的参与者,则将选择collectionView的项目。

当我在collectionView中选择一个项目时,我需要添加到此表对象。 这是我的代码:

func selectedPartecipants() {

    for row in 0..<tableView.numberOfRowsInSection(0) {

        let indexPath = NSIndexPath(forRow: row, inSection: 0)

        let price = tempPrice[indexPath.row].partecipants?.date!

        for item in 0..<collection.numberOfItemsInSection(0) {

            let myPath = NSIndexPath(forRow: item, inSection: 0)
            let partecipant = partecipantsAtEvent[myPath.row].date!

            if price == partecipant {
                collection.selectItemAtIndexPath(myPath,
                                                 animated: false,
                                                 scrollPosition: UICollectionViewScrollPosition.None)
            }
        }
    }

我如何实现这一目标?

1 个答案:

答案 0 :(得分:2)

我认为你需要采取另一种方法。

1)创建一个数组。

2)将所选项添加到数组中。

3)完成后,从数组中填充tableview。

更容易。你知道怎么做吗?

如果没有,这里有一些应该有用的代码:

   var selectedArray = [Price]()

//这里放置检查所选项的CODE并将项添加到数组中。

func selectedPartecipants() {


        let price = tempPrice[indexPath.row].partecipants?.date!


        for item in 0..<collection.numberOfItemsInSection(0) {

            let myPath = NSIndexPath(forRow: item, inSection: 0)
            let partecipant = partecipantsAtEvent[myPath.row].date!


            if price == partecipant {

                selectedArray.append(partecipant)
            }

        }
}

//

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        if let cell = tableView.dequeueReusableCellWithIdentifier("SelectedCell") as? MovieCell{
            let selected = selectedArray[indexPath.row]
            cell.configureCell(selected)
            return cell
        } else {
            return UITableViewCell()
        }
    }

    func numberOfSectionsInTableView(tableView: UITableView) -> Int {
        return 1
    }

    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return selectedArray.count
    }

最后,得出结论:

func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {

   selectedPartecipants()
   tableView.reloadData()

}