1

我有一个 collectionView 的自定义单元格,里面有 3 个 didSet 变量。我的问题是我需要使用每个 didSet 中的 1 个首选项来显示在标签上,但我无法找到这样做的方法。有什么建议么?

class VideosCell: UICollectionViewCell {


var playlistDataFromAPI: playListsnippet?  {
    didSet{
        guard let pubDate = playlistDataFromAPI?.snippet.publishedAt else {return}
    }
}

var videoSnippet: videoSnippet? {
    didSet{
        guard let duration = videoSnippet?.contentDetails.duration else {return}

    }
}

var channelData: channelSnippet? {
    didSet{
        guard let channelName = channelData?.snippet.title else {return}

    }
}

现在我想同时使用 pubDate、duration 和 channelName 来显示在标签上,例如:label.text = channelName, duration, pubDate

非常感谢您的帮助!

4

1 回答 1

0

在您的 UIView 或 UIViewController 子类中,我建议声明一个名为 Content 的嵌套结构,该结构具有您需要显示的任何值的属性。

然后有一个 Content 类型的实例 var,您可以从类中的任何位置访问它的属性。

将所有这些属性捆绑在一起有几个很好的好处,例如能够将用户在一行代码中看到的所有当前内容导出到 JSON 以进行日志记录(如果您将其设为 Codable)、更清晰的测试等。

于 2017-12-23T20:42:18.147 回答