【问题标题】:Zooming with UIScrollView does not work使用 UIScrollView 缩放不起作用
【发布时间】:2017-02-13 20:44:52
【问题描述】:

所以,伙计们,图片出现在 View 上,UIView 是带有 ScrollView 的 EmbedIn,Outlets 很好,图像出现但当我尝试缩放时没有任何反应,我会感谢任何建议,或带有按钮的示例事件 +和 - 或滑块,如果这将工作。 我已经做了我在互联网上找到的所有东西,但它不起作用,这是我的代码:

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) {

}

因为有人遇到问题,因为这不是写的...... 请问有人知道为什么它不起作用吗?

【问题讨论】:

    标签: ios iphone swift uiscrollview zooming


    【解决方案1】:

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

    scrollViewOutlet.contentSize = takenImage.size
    

    【讨论】:

    • 成功了,但仍然没有任何变化...(((
    • 您是否在情节提要中使用了硬编码的宽度和高度限制?
    • 只是生成器接口约束
    【解决方案2】:

    问题可能是minScale,您将scrollViewzoomScale 设置为minScaleminScale 有问题,无法更改,因此您无法更改任何内容。

    【讨论】:

      【解决方案3】:

      问题解决了吗?????尝试删除这行代码。

      scrollViewOutlet.zoomScale = minScale
      

      顺便要注意变量名。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-11-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-23
        • 2015-06-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多