Swift 如何在UiImageView中平移UIImage?
Swift How to pan UIImage in UiImageView?
我有一个简单的测试应用程序,我想在其视图内平移图像。它不会平移或缩放,我看不出我的代码有什么问题。
我已遵循 this 教程,但在代码中实现了它。我已将图像的宽度设置为与高度相同,这样我就可以平移而不必缩放。
这是我的代码
import UIKit
class ViewController: UIViewController, UIScrollViewDelegate {
let scrollView: UIScrollView = {
let scrollView = UIScrollView()
return scrollView
}()
let zoomImageView: UIImageView = {
let imageView = UIImageView()
imageView.isUserInteractionEnabled = true
imageView.clipsToBounds = true
imageView.contentMode = .scaleAspectFill
imageView.image = #imageLiteral(resourceName: "lighthouse")
return imageView
}()
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .white
let screenSize = UIScreen.main.bounds
let screenHeight = screenSize.height
scrollView.frame = CGRect(x:0, y:0, width: screenHeight, height: screenHeight)
scrollView.delegate = self
scrollView.minimumZoomScale = 1.0
scrollView.maximumZoomScale = 3.0
zoomImageView.frame = CGRect(x:0, y:0, width: screenHeight, height: screenHeight)
scrollView.addSubview(self.zoomImageView)
view.addSubview(scrollView)
}
func viewForZooming(in scrollView: UIScrollView) -> UIView? {
return zoomImageView
}
}
在您的代码中搜索术语 contentSize
。你没有看到它,是吗?但是关于滚动视图如何工作的最基本的事实是:没有 contentSize
的滚动视图不能滚动 (即你所说的 "pan" )。特别是,它的内容大小必须大于其自身的边界大小,以便能够沿该轴(高度或宽度,或两者)滚动。否则,没有什么可滚动的。
我有一个简单的测试应用程序,我想在其视图内平移图像。它不会平移或缩放,我看不出我的代码有什么问题。
我已遵循 this 教程,但在代码中实现了它。我已将图像的宽度设置为与高度相同,这样我就可以平移而不必缩放。
这是我的代码
import UIKit
class ViewController: UIViewController, UIScrollViewDelegate {
let scrollView: UIScrollView = {
let scrollView = UIScrollView()
return scrollView
}()
let zoomImageView: UIImageView = {
let imageView = UIImageView()
imageView.isUserInteractionEnabled = true
imageView.clipsToBounds = true
imageView.contentMode = .scaleAspectFill
imageView.image = #imageLiteral(resourceName: "lighthouse")
return imageView
}()
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .white
let screenSize = UIScreen.main.bounds
let screenHeight = screenSize.height
scrollView.frame = CGRect(x:0, y:0, width: screenHeight, height: screenHeight)
scrollView.delegate = self
scrollView.minimumZoomScale = 1.0
scrollView.maximumZoomScale = 3.0
zoomImageView.frame = CGRect(x:0, y:0, width: screenHeight, height: screenHeight)
scrollView.addSubview(self.zoomImageView)
view.addSubview(scrollView)
}
func viewForZooming(in scrollView: UIScrollView) -> UIView? {
return zoomImageView
}
}
在您的代码中搜索术语 contentSize
。你没有看到它,是吗?但是关于滚动视图如何工作的最基本的事实是:没有 contentSize
的滚动视图不能滚动 (即你所说的 "pan" )。特别是,它的内容大小必须大于其自身的边界大小,以便能够沿该轴(高度或宽度,或两者)滚动。否则,没有什么可滚动的。