我想实现,当任何CollectionViewCell用户点击,然后一个新的视图将显示缩放和滚动。基本上我有两个不同的类,名为MyCollectionViewController和MyScrollViewController。我在我的收藏视图控制器下面的代码部分:崩溃:当使用SDWebImage
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath){
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let VC = storyboard.instantiateViewController(withIdentifier: "myScrollVC") as? MyScrollViewController
self.navigationController?.pushViewController(VC!, animated: true)
VC?.setImageToScrollView(image_URL: (self.jsonData?.HD_WALLPAPER![indexPath.row].wallpaper_image)!)
}
而且我已经在我的滚动视图控制器下面的代码部分:我使用SDWebImage ...开源库
import UIKit
import SDWebImage
class MyScrollViewController: UIViewController, UIScrollViewDelegate {
@IBOutlet weak var myImageView: UIImageView!
@IBOutlet weak var myScrollView: UIScrollView!
override func viewDidLoad(){
super.viewDidLoad()
self.myScrollView.minimumZoomScale = 1.0
self.myScrollView.maximumZoomScale = 6.0
}
public func setImageToScrollView(image_URL: String){
DispatchQueue.main.async {
self.myImageView!.sd_setImage(with: URL(string: image_URL), completed: {
(image, error, cacheType, url) in
//Completion Block ... Do Nothing
})
}
}
override func didReceiveMemoryWarning(){
super.didReceiveMemoryWarning()
}
func viewForZooming(in scrollView: UIScrollView) -> UIView?{
return self.myImageView
}
}
管理图像缓存。
问题:有时图像加载成功,没有任何错误,但大部分时间我的应用程序崩溃同时与下面的错误执行sd_setImage API的SDWebImage框架......
致命错误:意外发现零而展开的可选值
QUERY:
- 首先我叫pushViewController然后我打电话给我的自定义的功能。从集合视图单元调用函数是否正确?
- 为什么它显示意外地发现零,同时展开一个可选值..虽然我得到无错图像的网址。
似乎'self.myImageView'是'nil' –
@RajibTheKing如果让绑定imageView而不是强制展开它,请做。你的imageView有时会因为你的应用程序崩溃而无法使用 –