gpt4 book ai didi

swift - 使用 UIButtons 在放大的 UIImageView 中左、右、上、下移动

转载 作者:行者123 更新时间:2023-11-30 10:50:40 25 4
gpt4 key购买 nike

我搜索了很多资源,到目前为止还没有结果。

通过在 ScrollView 下滑动 UIImageView,我能够成功地放大/缩小以及向左、向右、向上和向下移动。

如何使用按钮实现相同的效果?我可以使用以下代码进行放大和缩小:

@IBAction func zoomIn(_ sender: UIBarButtonItem) {
imageScrollView.maximumZoomScale = 6.0
if imageScrollView.zoomScale < imageScrollView.maximumZoomScale {
imageScrollView.zoomScale = imageScrollView.zoomScale + 0.1
}
}

@IBAction func zoomOut(_ sender: UIBarButtonItem) {
imageScrollView.minimumZoomScale = 1
if imageScrollView.zoomScale > imageScrollView.minimumZoomScale {
imageScrollView.zoomScale = imageScrollView.zoomScale - 0.1
}
}

这是我正在使用的代码:

@IBOutlet weak var imageScrollView: UIScrollView!
@IBOutlet weak var imageView: UIImageView!

override func viewDidLoad() {
super.viewDidLoad()

imageScrollView.contentSize = self.imageView.frame.size
imageScrollView.delegate = self
}


override func viewWillLayoutSubviews() {
super.viewWillLayoutSubviews()
updateMinZoomScaleForSize(view.bounds.size)
}

// MARK: - Calculation of zoom scale for imageScrollView
fileprivate func updateMinZoomScaleForSize(_ size: CGSize) {
let widthScale = size.width / imageView.bounds.width
let heightScale = size.height / imageView.bounds.height
let minScale = min(widthScale, heightScale)

imageScrollView.minimumZoomScale = minScale
imageScrollView.zoomScale = minScale
}

我需要再添加 4 个箭头形状的按钮来左、右、上、下移动。做这一切的目的是因为我想同时绘制和缩放 UIImageView ,这会导致冲突。

最佳答案

添加四个按钮并将每个按钮映射到以下操作。如果您不使用自动布局,那么这将起作用:

@IBAction func moveLeft(_ sender: UIBarButtonItem) {
imageScrollView.frame.origin.x -= 10.0
}

@IBAction func moveRight(_ sender: UIBarButtonItem) {
imageScrollView.frame.origin.x += 10.0
}

@IBAction func moveUp(_ sender: UIBarButtonItem) {
imageScrollView.frame.origin.y += 10.0
}

@IBAction func moveDown(_ sender: UIBarButtonItem) {
imageScrollView.frame.origin.y -= 10.0
}

关于swift - 使用 UIButtons 在放大的 UIImageView 中左、右、上、下移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54618955/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com