繁体   English   中英

使用UIScrollView缩放不起作用

[英]Zooming with UIScrollView does not work

伙计们,图片出现在View上,UIView用ScrollView嵌入EmbedIn,Outlets很好,图片出现了,但是当我尝试缩放时什么也没发生,我将非常感谢任何建议,或者使用Buttons +和-或示例事件滑块(如果可以)。 我已经完成了在互联网上找到的所有内容,但是它不起作用,这是我的代码:

class TakenPhotoPreviewViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate, UIScrollViewDelegate {

@IBOutlet weak var scrollViewOutlet: UIScrollView!
@IBOutlet weak var imageViewOutlet: UIImageView!
var takenImage: UIImage = UIImage()
let picker = UIImagePickerController()

override func viewDidLoad() {
    super.viewDidLoad()
    imageViewOutlet.image = takenImage
    picker.delegate = self
    scrollViewOutlet.delegate = self
    setForZoom()

setForZoom方法在哪里

    func setForZoom () {
    imageViewOutlet.frame = CGRect(origin: CGPoint.zero, size: takenImage.size)
    scrollViewOutlet.addSubview(imageViewOutlet)
    scrollViewOutlet.contentSize = takenImage.size
    scrollViewOutlet.clipsToBounds = false
    let scrollViewFrame = scrollViewOutlet.frame
    let scaleWidth = scrollViewFrame.size.width / scrollViewOutlet.contentSize.width
    let scaleHeight = scrollViewFrame.size.height / scrollViewOutlet.contentSize.height
    let minScale = min(scaleWidth, scaleHeight);
    scrollViewOutlet.minimumZoomScale = minScale;

    scrollViewOutlet.maximumZoomScale = 4.0
    scrollViewOutlet.zoomScale = minScale;

我也有:

private func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? {

    return imageViewOutlet

}

乃至

 func scrollViewDidEndZooming(_ scrollView: UIScrollView, with view: UIView?, atScale scale: CGFloat) {

}

导致有人遇到问题,因为这没有写出来。...请有人知道为什么它不起作用吗?

从您的应用程序中删除这段代码,然后尝试使用它。 到目前为止,您正在使用图像大小来限制ScrollView内容大小。

scrollViewOutlet.contentSize = takenImage.size

这个问题可能是minScale ,您设置的zoomScalescrollViewminScale minScale存在问题,无法更改,因此您无法更改任何内容。

问题是否解决了?尝试删除此行代码。

scrollViewOutlet.zoomScale = minScale

顺便说一句,您应该注意变量的名称。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM