如何在单个 TableViewcell 的不同部分有不同的图像,将集合视图放置在 tableviewCell 内

Posted

技术标签:

【中文标题】如何在单个 TableViewcell 的不同部分有不同的图像,将集合视图放置在 tableviewCell 内【英文标题】:How to have different images at different sections of a single TableViewcell, having collection view placed inside a tableviewCell 【发布时间】:2018-09-12 10:44:36 【问题描述】:

I want different images under different heading

//ViewController.swift
  var categories = ["Good Afternoon","Daily Mixes","Bollywood Gems","Daily Mixes","Bollywood Gems","Bollywood Romantic","Pop","Trending Now","Top Charts","Saavn Originals","New Releases","Top Playlists","Radio Stations","Editorial Picks" ]

func numberOfSections(in tableView: UITableView) -> Int 
    return categories.count

func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? 
    return categories[section]

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
    return 1


func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
    let cell = tableView.dequeueReusableCell(withIdentifier: "cell") as! CategoryRowTableViewCell
        return cell



// custom.swift

@IBOutlet weak var pic: UIImageView!

@IBOutlet weak var text: UILabel!

func execute() 

print("This is working")
pic.layer.cornerRadius = pic.frame.size.width/2
pic.clipsToBounds = true
    print("working")




// CategoryRowTableViewCell.swift

let main : [String] = ["black forest","butterscotch","Truffle","a","b","c","d","e","j","k","u","q","s","z"]


@IBOutlet weak var collect: UICollectionView!





func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int 
    return 14


func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell 
    let cell = collect.dequeueReusableCell(withReuseIdentifier: "videocell", for: indexPath) as! custom
     cell.execute()
     cell.pic.image = UIImage(named : main[indexPath.row])
     cell.text.text = main[indexPath.row]
     print(cell.text.text!)

    return cell


我有一个表格视图,因为我有一个表格视图单元格。 我有不同部分的表格视图单元格。 在那个单元格中有一个滚动视图,上面有集合视图和集合视图单元格。 我的收藏视图单元格包含一个图像和一个标签 我想在集合视图单元格的不同行中显示不同的图像。但是我在表格视图单元格的每个部分都得到相同的图像。请帮助我。

【问题讨论】:

没有代码,很难说。您是否在 UITableViewCell 中重新加载了 collectionView?是重用问题吗? 如果你能显示你的代码就做 您可能需要以更好的方式处理数据源 我已经上传了代码。现在你能帮我吗 【参考方案1】:

UICollectionView 继承自 UIScrollView 意味着如果我正确理解您的结构,您不需要在滚动视图中有 UICollectionView。一旦图像/内容超出视图框架,集合视图将滚动。 UITableViews 也继承自 UIScrollView,因此一旦内容大小超过表格视图的框架,它也将具有滚动功能。

在每个表格视图单元格中都有一个集合视图可能不是实现您需要/想要的最佳方式。但是,问题似乎是您为每个集合视图分配了相同的数据源,但没有看到任何代码,我不得不猜测您正在创建一个集合视图,为其分配数据,然后将其添加到每个表视图单元格。

【讨论】:

我已经上传了代码。请问你现在能解决这个问题吗? 好吧,按照你的结构方式,区分哪些图像去哪里会有点困难。因此,要解决此问题,您需要将图像分别传递到每个表格视图单元格中。因此,将“主”数组公开,而不是在表格视图单元格类中定义其中的内容,而是在 viewController 的 cellForRowAt 委托方法中为每个部分传递图像名称。 您的视图控制器必须有多个数组,或者一个数组数组,它​​允许您访问 cellForRowAt 委托方法中提供的每个索引路径的特定数组 如果你需要我可以提供一个例子吗? 那太好了,而且通俗易懂,请给我一份。

以上是关于如何在单个 TableViewcell 的不同部分有不同的图像,将集合视图放置在 tableviewCell 内的主要内容,如果未能解决你的问题,请参考以下文章

在 Tableviewcell 中显示多个图像

根据部分自定义 TableviewCell

如何在 Phaser 3 中启用单击数组中的单个项目并将每个项目显示在屏幕的不同部分?

如何将不同的 UITapGestureRecognizer 添加到单个 UILabel 的许多部分?

如何在 TableViewCell 中为 collectionView 异步下载图像?

在静态 TableView 中添加和设置 TableViewCell