1
所以我有一个视图控制器上有一个图像/按钮。如果点击它,它会在视图控制器上激活一个模态弹出窗口,其上有相同的图像。该图像位于UIScrollView上方,并为其创建了缩放功能。滚动查看缩放停止让我滚动整个缩放图像
我能够成功放大图像并滚动几次,直到它决定停止让我滚动和缩放整个图像,但只有它的左上部分。
这只发生在我将屏幕倾斜到横向模式并再次激活弹出窗口之后。看起来图像在弹出窗口中变大了。
约束都在故事板中完成。我不确定问题是约束还是代码。
验证码:方向变化时
变量
@IBOutlet var scrollView: UIScrollView!
@IBOutlet var zoomImageView: UIImageView!
@IBOutlet var imageView: UIView!
@IBOutlet var backgroundButton: UIButton!
图片放大
override func viewDidLoad() {
super.viewDidLoad()
self.scrollView.minimumZoomScale = 1.0
self.scrollView.maximumZoomScale = 6.0
}
func viewForZooming(in scrollView: UIScrollView) -> UIView? {
return self.zoomImageView
}
中心图片
override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
if UIDevice.current.orientation.isLandscape{
imageView.center = self.view.center
} else if UIDevice.current.orientation.isPortrait{
imageView.center = self.view.center
}
}
模式弹出
@IBAction func showImageView(_ sender: Any) {
animateIn()
}
@IBAction func closeImageView(_ sender: Any) {
animateOut()
}
func animateIn() {
self.scrollView.zoomScale = 1.0
self.view.addSubview(imageView)
imageView.center = self.view.center
imageView.transform = CGAffineTransform.init(scaleX: 1.3, y: 1.3)
imageView.alpha = 0
self.backgroundButton.alpha = 0.7
UIView.animate(withDuration: 0.4) {
self.imageView.alpha = 1
self.imageView.transform = CGAffineTransform.identity
}
}
func animateOut() {
UIView.animate(withDuration: 0.3, animations: {
self.imageView.transform = CGAffineTransform.init(scaleX: 1.3, y: 1.3)
self.imageView.alpha = 0
self.backgroundButton.alpha = 0
}, completion: nil)
}
我只是把有可能相关的问题代码。
任何帮助将不胜感激。