edit: J'ai mis à jour le code de la question pour qu'il fonctionne maintenant au cas où cela aiderait quelqu'un.Swift3 Zoom comment changer UICollectionVoir la taille de l'image à la rigueur?
J'ai un scrollView
dans un UICollectionViewCell
mais je ne peux pas obtenir le zoom pour travailler dans le simulateur avec pincement. Je peux obtenir cela en zoomant manuellement sur la vue, mais j'ai besoin de changer le cadre de vue de l'image en taille réelle lorsque l'utilisateur pince pour zoomer. À l'heure actuelle, il s'agit de la taille à remplir avec la largeur du cadre définie sur la largeur de l'écran et la hauteur du cadre définie sur la hauteur de l'écran. J'ai besoin de changer dynamiquement la largeur du cadre pour égaler la hauteur du cadre car l'image est carrée.
Voici mon code:
import UIKit
class MyCollectionViewCell: UICollectionViewCell, UIScrollViewDelegate {
let screenWidth = UIScreen.main.bounds.width
let activityIndicator: UIActivityIndicatorView = {
let spinner = UIActivityIndicatorView()
spinner.activityIndicatorViewStyle = .white
spinner.color = Constants.APP_SPINNER_COLOR
spinner.hidesWhenStopped = true
return spinner
}()
var zoomScrollView: UIScrollView = {
let scrollView = UIScrollView()
scrollView.backgroundColor = .white
scrollView.minimumZoomScale = 1.0
scrollView.maximumZoomScale = 6.0
scrollView.clipsToBounds = true
scrollView.isUserInteractionEnabled = true
scrollView.translatesAutoresizingMaskIntoConstraints = false
return scrollView
}()
var itemImageView: UIImageView = {
let imageView = UIImageView()
imageView.contentMode = .scaleAspectFit
imageView.translatesAutoresizingMaskIntoConstraints = false
imageView.backgroundColor = .white
imageView.isUserInteractionEnabled = true
return imageView
}()
func viewForZooming(in zoomScrollView: UIScrollView) -> UIView? {
return itemImageView
}
override init(frame: CGRect) {
super.init(frame: frame)
zoomScrollView.delegate = self
contentView.backgroundColor = .white
contentView.addSubview(zoomScrollView)
zoomScrollView.addSubview(itemImageView)
itemImageView.addSubview(activityIndicator)
zoomImageView.frame = CGRect(x:0, y:0, width: screenWidth, height: screenHeight)
zoomScrollView.frame = itemImageView.frame
activityIndicator.anchorCenterXToSuperview()
activityIndicator.anchorCenterYToSuperview()
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
Qu'est-ce que ZoomimageView et Zoomscrollview –