我想實現,當任何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有時會因爲你的應用程序崩潰而無法使用 –