簡體   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