swift - TableViewController 和自定义 UITableViewCell 之间的关系

标签 swift swift2

在我的tableviewcell中,我有一个UIImageView。此ImageView用于向用户呈现录制视频的缩略图。下面是我如何设置ImageView

@IBOutlet weak var thumbImageView: UIImageView! {
    didSet {

            let videoUrl = NSURL(string: Link to Video )

            var thumbImage: UIImage?
            let asset = AVAsset(URL: videoUrl!)
            let assetImgGenerate = AVAssetImageGenerator(asset: asset)
            assetImgGenerate.appliesPreferredTrackTransform = true
            let time = CMTimeMake(asset.duration.value / 3, asset.duration.timescale)

                if let cgImage = try? assetImgGenerate.copyCGImageAtTime(time, actualTime: nil) {
                    thumbImage = UIImage(CGImage: cgImage)
                    print("Got Thumb")

                    self.thumbImageView.image = UIImage(CGImage: cgImage)
                }
        }
}

在我的 TableViewCell 中,我还有:

var URL: String? {
    didSet {
        print(URL!)
    }
}

在我的 TableView 中,我调用 Parse 数据库,其中存储了用户在我的 S3 服务器上保存的视频链接。在 CellForRowAtIndexPath 方法中,我使用 PFObject 为我的 URL 变量提供 URL:

cell.URL = Some URL

我想要的工作是:

let videoURL = NSURL(string: self.URL!)

但是当我运行传递给thumbImageView的URL的代码时,我得到了nil。我应该有其他方法来设置它吗?

感谢任何帮助!

最佳答案

您希望将 didSet 代码从 thumbImageView 移动到 URL 属性,以便在 URL 发生变化时加载图像。

目前,您的代码不会在正确的时间运行,因为仅当从 Storyboard/xib 加载单元格时才会设置 imageView

关于swift - TableViewController 和自定义 UITableViewCell 之间的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35516585/

相关文章:

swift - 将容器 View 添加到代码时发生 fatal error

swift - 在 SKReferenceNode 中转换 SKSpriteNode

ios - UITableView reloadData() Swift2 不重新加载数据

iOS - NavBar Logo 标题向左移动

ios - 如何从 URL Swift 下载图像

swift - 我们在 Swift Realm 中使用 RLMObject 还是 Object?

swift - 在 Swift 4 for MacOS X 中,如何在 NSBox 中嵌入 NSStackView?

ios - 为什么在 iOS10 上滑动推送通知功能不运行?

swift - 我们应该在方法的第一个参数中添加外部参数名称吗?为什么?

ios - 为不同屏幕制作 View Controller 的最佳方式