2016-08-11 100 views
1

我试图加载一个网站预览到UIImageView。我有以下的方法是当接收到请求的网站URL称为:在UIImageView中加载网站预览(Swift)

func loadWebsite(item:ShareItem) { 
    activitySpinner.startAnimating() 
    imageView.setImageForURL(item.asset!.absoluteString) { (image) in 
     self.showActionButton(true) 
     self.activitySpinner.stopAnimating() 
     self.actionButton.titleLabel?.text = "Open" 
    } 
} 

我相信有我在setImageForURL网站,逻辑错误是什么是应该的网站加载到我的自定义图像视图等级:

class MyCustomImageView:UIImageView, UIWebViewDelegate { 

    var webview:UIWebView? 
    var completion:((UIImage?)->Void)? 

    func setImageForURL(urlString:String, completion:((image:UIImage?)->Void)?) { 

     self.completion = completion 

     guard let url = NSURL(string: urlString) else { 
      self.completion?(nil) 
      return 
     } 

     let request = NSURLRequest(URL: url) 
     webview = UIWebView(frame: self.bounds) 
     webview!.delegate = self 
     webview?.scalesPageToFit = true 
     webview!.loadRequest(request); 
    } 

有没有人有一些洞察到我如何接近这个不正确?所有方法都按正确的顺序正确调用,但UIImageView中没有显示图像。

+0

为什么你想让你的图片浏览器加载一个网站?如果图像视图开始加载网站,那么创建UIWebView的目的是什么?你能更清楚你想要达到的目标吗? – Harsh

+0

@Harsh这背后的想法是需要'画'网站的地方 - 否则我有网址/一些HTML,并不知道实际看起来像渲染。或者有可能从网站获取数据,然后以某种方式显示它? – narner

+0

您的webview视图需要在loadRequest命令之前加载,或换句话说,webview必须已经存在于父视图中。是这样吗? – Armin

回答

1

您需要在某些时候将Web视图添加到图像视图。我的意思是,在imageView上使用addSubview方法,以及在webview上调用loadRequest方法之前的所有这些。在加载内容之前,您的webview需要有一个“物理”框架并存在于父视图中。

+0

这是有道理的。由于我试图将这个webview添加到继承自'UIImage'的自定义类中,我该怎么做? – narner