编辑:我已更新问题代码,以便它可以帮助任何人。Swift3放大如何更改UICollectionView框架大小捏?
我有一个scrollView
在UICollectionViewCell
,但不能让缩放工作在模拟器与捏。我可以通过手动缩放视图来实现这一点,但当用户捏合放大时,我需要将图像视图框更改为全尺寸。现在它的大小可以填充帧宽设置为屏幕宽度和帧高设置为屏幕高度。我需要动态地改变帧的宽度,使其等于帧的高度,因为图像是方形的。
这里是我的代码:
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")
}
}
什么是ZoomimageView和Zoomscrollview –