TableViewController和Custom UITableViewCell之间的关系

时间:2016-02-19 22:55:29

标签: 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数据库,我在其中存储了用户在My S3服务器上保存的视频链接。在CellForRowAtIndexPath方法中,我使用PFObject为我的URL变量提供URL:

cell.URL = Some URL

我想要的工作是:

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

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

感谢任何帮助!

2 个答案:

答案 0 :(得分:0)

您希望将Ext.ComponentQuery.query('button[text=<span class="g-underlined">S</span>earch]'); 代码从didSet移至thumbImageView属性,以便在网址发生变化时加载图片。

目前,您的代码不会在正确的时间运行,因为URL只会在从storyboard / xib加载单元格时设置。

答案 1 :(得分:0)

在设置thumbImageView插座时,它并不意味着您已完全初始化,因此您无法引用自我。这就是你得到零的原因。请阅读swift。