远程映像完成下载后,Swift返回UIImageView

时间:2015-07-29 11:23:08

标签: ios swift uiimageview

我正在使用此库https://github.com/Yalantis/Koloda

self.swipeView.dataSource = self

我已将dataSource设置为self,而Koloda需要返回UIView的datasource方法。我正在执行此任务的问题是在后台发生,该方法在获取图像之前返回并返回nil。 此外,Skeets ImageManger似乎只允许我在成功中回归Void。

我如何绕过这个?

func kolodaViewForCardAtIndex(koloda: KolodaView, index: UInt) -> UIView {
    var imageView: UIView!
    ImageManager.fetch("http://cdn.images.express.co.uk/img/dynamic/109/590x/364016_1.jpg",
        progress: { (status: Double) -> Void in
            println(status)
        }, success: { (data: NSData) -> Void in
            imageView = UIImageView(image: UIImage(data: data))
        }) { (error: NSError) -> Void in
        println(error)
    }

    return imageView
}

1 个答案:

答案 0 :(得分:0)

您应该创建UIImageView并将其返回。 调用成功处理程序时,您可以为图像视图设置图像。

func kolodaViewForCardAtIndex(koloda: KolodaView, index: UInt) -> UIView {
            var imageView = UIImageView(frame: CGRectZero)
            ImageManager.fetch("http://cdn.images.express.co.uk/img/dynamic/109/590x/364016_1.jpg",
                progress: { (status: Double) -> Void in
                    println(status)
                }, success: { (data: NSData) -> Void in
                    imageView.image = UIImage(data: data)
                }) { (error: NSError) -> Void in
                println(error)
            }

            return imageView
    }