在集合视图单元格选择上更改tableview单元格内容

时间:2019-06-20 06:27:39

标签: swift uitableview uicollectionview

我在一个视图控制器中有一个tableViewcollectionView

tableView中有标题说明,在collectionView中有lable

我要更改collectionView标签上的tableView内容。

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        return Bookmark.count
    }


func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let cell = collectionViewBookmark.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! BookMarkCollectionViewCell



    cell.lblTitle.text = Bookmark[indexPath.row]
    cell.backgroundColor = UIColor.white



    return cell
}


func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
        let cell = collectionViewBookmark.cellForItem(at: indexPath)

        cell?.backgroundColor = UIColor.blue

        self.selectedIndexPath = indexPath
//
        let newsDict = arrNewsData[indexPath.row]

        if (indexPath.row == 1)
        {
        let cell1 = tableViewBookMark.cellForRow(at: indexPath) as! BookMarkFirstTableViewCell
        cell1.lblTitle.text = newsDict["title"] as! String
        tableViewBookMark.reloadData()
        }
        tableViewBookMark.reloadData()
    }

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableViewBookMark.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! BookMarkFirstTableViewCell

        let dict = arrNewsData[indexPath.row]


        cell.lblTitle.text = dict["title"] as! String
      // cell.imgBookMark.image = dict["image_url"]
        let url = URL(string: dict["image_url"] as! String)
        URLSession.shared.dataTask(with: url!) { (data, response, error) in
            if data != nil{
                DispatchQueue.main.async {
                    let image = UIImage(data: data!)
                    cell.imgBookMark.image = image
                }
            }
        }.resume()
         return cell
    }

2 个答案:

答案 0 :(得分:1)

查看我的内嵌评论。

 SELECT OBJECT_NAME (FK.referenced_object_id) 'Referenced Table', 
      OBJECT_NAME(FK.parent_object_id) 'Referring Table', FK.name 'Foreign Key', 
      COL_NAME(FK.referenced_object_id, FKC.referenced_column_id) 'Referenced Column',
      COL_NAME(FK.parent_object_id,FKC.parent_column_id) 'Referring Column'
     FROM sys.foreign_keys AS FK
             INNER JOIN sys.foreign_key_columns AS FKC 
                 ON FKC.constraint_object_id = FK.OBJECT_ID
     WHERE OBJECT_NAME (FK.referenced_object_id) = 'YourTableName'
     AND COL_NAME(FK.referenced_object_id, FKC.referenced_column_id) = 'YourColumnName'
     order by  OBJECT_NAME(FK.parent_object_id)

答案 1 :(得分:1)

更新单元格中的值后,您将重新加载tableView

tableViewBookMark.reloadData() 

这将触发包含cellForRowAt的数据源函数,因此您将丢失更新后的值的一种解决方案是在UIViewController中包含一个全局变量并在{{1 }}并在cellForRowAt collectionView中进行更新。

额外提示:您无需为可以使用的单个更改重新加载所有DidSelect

tableView

仅重新加载tableView.reloadRows(at: [indexPath], with: .top)

中选定单元格的数量