gpt4 book ai didi

ios - Scrollview 只缩放到左上角

转载 作者:行者123 更新时间:2023-11-28 15:35:39 31 4
gpt4 key购买 nike

我以编程方式创建了一个 ScrollView ,并添加了一个图像作为它的 subview ,但是当我尝试放大图像时,它只会放大到上角,并且不允许我滚动查看图像的不同部分。

这是我用来创建 ScrollView 的代码:

let scrollView = UIScrollView()

var image: NSData!

override func viewDidLoad() {
super.viewDidLoad()

scrollView.minimumZoomScale = 1.0
scrollView.maximumZoomScale = 3.0
scrollView.zoomScale = 1.0
scrollView.frame = CGRect(x: 0, y: 0, width: self.view.frame.width, height: self.view.frame.height)
scrollView.delegate = self
scrollView.isPagingEnabled = false
scrollView.contentSize = CGSize(width: self.view.frame.width, height: self.view.frame.height)

view.addSubview(scrollView)

scrollView.addSubview(imageView)

imageView.image = UIImage(data: image as Data)
imageView.contentMode = .scaleAspectFit
imageView.isUserInteractionEnabled = true

let longPress = UILongPressGestureRecognizer(target: self, action: #selector(share))
longPress.minimumPressDuration = 0.5
longPress.numberOfTapsRequired = 0
imageView.addGestureRecognizer(longPress)

let doubleTap = UITapGestureRecognizer(target: self, action: #selector(handleDoubleTap(recognizer:)))
doubleTap.numberOfTapsRequired = 2
scrollView.addGestureRecognizer(doubleTap)

}

func viewForZooming(in scrollView: UIScrollView) -> UIView? {
return imageView
}

func share(sender: UILongPressGestureRecognizer) {
if sender.state == .ended {
if UIImage(data: image as Data) != nil {
let Item = UIImage(data: self.image! as Data)
let activity = UIActivityViewController(activityItems: [Item!], applicationActivities: nil)
activity.excludedActivityTypes = [UIActivityType.print, UIActivityType.addToReadingList, UIActivityType.openInIBooks]
self.present(activity, animated: true, completion: nil)
}
}
}

func handleDoubleTap(recognizer: UITapGestureRecognizer) {
if scrollView.zoomScale > scrollView.minimumZoomScale {
scrollView.setZoomScale(scrollView.minimumZoomScale, animated: true)
} else {
scrollView.setZoomScale(scrollView.maximumZoomScale, animated: true)
}
}

非常感谢您的帮助

最佳答案

当您设置 ScrollView 的缩放比例时,问题出在您的代码中。你没有指定它应该缩放到哪里。很自然地,它会缩放并停留在左上角。

您需要在 handleDoubleTap(recognizer: UITapGestureRecognizer) 中获取触摸的位置,计算缩放的矩形,然后调用 scrollRectToVisible在你的 ScrollView 上。

关于ios - Scrollview 只缩放到左上角,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44319089/

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