When a user taps on the image that is being displayed in FSPagerView, the image goes full screen which is exactly what I want. However once the screen is touched again and the full screen image is dismissed, upon touching the image again it will not go full screen. I will have to leave the view and go back to the page in order to enable it to go full screen. What is causing the image not to go full screen more than one time only?
public func numberOfItems(in pagerView: FSPagerView) -> Int {
return imagesArray.count
}
public func pagerView(_ pagerView: FSPagerView, cellForItemAt index: Int) -> FSPagerViewCell {
let cell = pagerView.dequeueReusableCell(withReuseIdentifier: "cell", at: index)
cell.imageView?.loadImageUsingCacheWithUrlString(urlString: imagesArray[index])
cell.imageView?.contentMode = .scaleAspectFill
return cell
}
func pagerView(_ pagerView: FSPagerView, shouldSelectItemAt index: Int) -> Bool {
return true
}
func pagerView(_ pagerView: FSPagerView, didSelectItemAt index: Int) {
let cell = pagerView.dequeueReusableCell(withReuseIdentifier: "cell", at: index)
cell.imageView?.loadImageUsingCacheWithUrlString(urlString: imagesArray[index])
cell.imageView?.contentMode = .scaleAspectFill
let imageView = cell.imageView as! UIImageView
let newImageView = UIImageView(image: imageView.image)
newImageView.frame = UIScreen.main.bounds
newImageView.backgroundColor = .black
newImageView.contentMode = .scaleAspectFit
newImageView.isUserInteractionEnabled = true
let tap = UITapGestureRecognizer(target: self, action: #selector(dismissFullscreenImage))
newImageView.addGestureRecognizer(tap)
self.view.addSubview(newImageView)
self.navigationController?.isNavigationBarHidden = true
self.tabBarController?.tabBar.isHidden = true
}
@objc func dismissFullscreenImage(sender: UITapGestureRecognizer) {
sender.view?.removeFromSuperview()
self.navigationController?.isNavigationBarHidden = false
self.tabBarController?.tabBar.isHidden = false
// sender.view?.removeFromSuperview()
}