久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

UIImageView 在 UIScrollView 中縮放和捏合

UIImageView zoom and pinch in UIScrollView(UIImageView 在 UIScrollView 中縮放和捏合)
本文介紹了UIImageView 在 UIScrollView 中縮放和捏合的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我嘗試了許多不同的方法來實現擴展圖像和捏拉縮放.我找到了有關如何使用項目中保存的圖像執行此操作的教程,但是我正在從 Firebase 檢索我的圖像.我希望一張圖片占據 ProfileViewController 屏幕的一半左右,而其他圖片能夠擴展整頁并且能夠縮放.我現在擁有的代碼可以做到這一點,但是縮放和位置不干凈或易于使用.

I have tried many different ways of implementing expand image and pinch to zoom. I have found tutorials on how to do this with images saved in my project however I am retrieving my images from Firebase. I would like one image to take about half the ProfileViewController screen and the other pictures to be able to be expanded full page and also have the ability to zoom. My code I have for it now does this however the zooming and the position is not clean or easy to use.

var newImageView: UIImageView!



@IBAction func imageTapped(_ sender: UITapGestureRecognizer)  {
    let imageView = sender.view as! UIImageView

    let scrollView = UIScrollView(frame: self.view.frame)


    newImageView = UIImageView(image: imageView.image)
    newImageView.frame = self.view.frame
    newImageView.backgroundColor = .black
    newImageView.contentMode = .top
    newImageView.isUserInteractionEnabled = true


    let tap = UITapGestureRecognizer(target: self, action: #selector(dismissFullscreenImage))
    scrollView.addGestureRecognizer(tap)


    scrollView.delegate = self
    scrollView.minimumZoomScale = 1.0
    scrollView.maximumZoomScale = 3.0

    scrollView.addSubview(newImageView)

    self.view.addSubview(scrollView)
}

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

func dismissFullscreenImage(_ sender: UITapGestureRecognizer) {
    sender.view?.removeFromSuperview()
}

推薦答案

這是我正在以編程方式創建滾動視圖和圖像視圖,這里 img 是我正在選擇的 PHAsset圖片來自畫廊.

Here is I am creating scrollview and imageview programatically and here img is a PHAsset that I am selecting image from gallery.

我在做什么,選擇一個圖像并移動到其他視圖控制器,然后我根據我的 imageview 調整該圖像的大小因此圖像在縮放后不會模糊.

最小縮放受限于 imageview,最大縮放為 4.0.

Here what I am doing, select an image and move to other view controller and I resize that image according to my imageview So image is not blurry after zooming it.

Minimum zooming is imageview bound and maxmimum zooming is 4.0.

func singleVC1()  {
        let v = UIView(frame: CGRect(x: 40, y: 50, width: self.view.frame.size.width - 80, height: view.frame.size.height - 200))
        let view1 = UIView(frame: CGRect(x: 0, y: 0, width: v.frame.size.width, height: v.frame.size.height/2 - 1))
        let scroll1 = UIScrollView.init(frame: view1.bounds)
        let imgview = UIImageView.init(frame: (CGRect)(origin: CGPoint.zero, size: self.returnAspectSize(targetWidth: view.frame.size.width, img: img)))
        self.setZoomScale(scrollview: scroll1, imageview: imgview)
        imgview.image = self.getUIImage(asset: img)
        scroll1.maximumZoomScale = 4.0;
        scroll1.delegate = self;
        scroll1.bounces = false
        scroll1.contentSize =  imgview.frame.size
        scroll1.addSubview(imgview)
        view1.layer.borderColor = UIColor.red.cgColor
        view1.layer.borderWidth = 5.0
        view1.addSubview(scroll1)
        v.addSubview(view1)

        let view2 = UIView(frame: CGRect(x: 0, y: v.frame.size.height/2+1, width: v.frame.size.width, height: v.frame.size.height/2 - 1))
        let scroll2 = UIScrollView.init(frame: view2.bounds)
        let imgview1 = UIImageView.init(frame: (CGRect)(origin: CGPoint.zero, size: self.returnAspectSize(targetWidth: view.frame.size.width, img: img)))
        imgview1.image = self.getUIImage(asset: img)
        self.setZoomScale(scrollview: scroll2, imageview: imgview1)
        scroll2.bounces = false

        scroll2.maximumZoomScale = 4.0;
        scroll2.delegate = self;
        view2.layer.borderColor = UIColor.red.cgColor
        view2.layer.borderWidth = 5.0
        scroll2.contentSize = imgview1.frame.size
        scroll2.addSubview(imgview1)
        view2.addSubview(scroll2)
        v.addSubview(view2)
        self.view.addSubview(v)
    }
func setZoomScale(scrollview : UIScrollView, imageview : UIImageView) {
        var minZoom = min(self.view.bounds.size.width / imageview.bounds.size.width, self.view.bounds.size.height / imageview.bounds.size.height);

        if (minZoom > 1.0) {
            minZoom = 1.0;
        }
        scrollview.minimumZoomScale = minZoom;
        scrollview.zoomScale = minZoom;
    }
    func returnAspectSize(targetWidth : CGFloat, img : PHAsset) -> CGSize {
        let img1 = self.getUIImage(asset: self.img)
        let targetwidth = targetWidth
        let scalefactor = (CGFloat)(targetwidth) / (CGFloat)((img1?.size.width)!)
        let targetheight = (img1?.size.height)! * scalefactor
        let targesize = CGSize(width: (CGFloat)(targetwidth), height: targetheight)
        return targesize
    }

試試這個.我相信這會對你有所幫助.

Try this. I am sure this will help you.

這篇關于UIImageView 在 UIScrollView 中縮放和捏合的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

how to set scrollview content size in swift 3.0(如何在 swift 3.0 中設置滾動視圖內容大小)
Stop a UITableView from automatically scrolling(阻止 UITableView 自動滾動)
iOS UIScrollView Lazy Loading(iOS UIScrollView 延遲加載)
using iOS 6.0 SDK and building for iOS 5 Target causes UIScrollView setMinimumZoomScale to fail when running on iOS 5 simulator(在 iOS 5 模擬器上運行時,使用 iOS 6.0 SDK 并為 iOS 5 Target 構建會導致 UIScrollView setMinimumZ
Create partial-screen UIPageViewController programmatically(以編程方式創建部分屏幕 UIPageViewController)
how to make an ImageView zoomable with or without ScrollView.?(如何使用或不使用 ScrollView 使 ImageView 可縮放?)
主站蜘蛛池模板: 久热精品在线观看视频 | 欧美另类视频 | www.99热.com| 黄色片在线免费看 | 阿v视频在线观看 | 亚洲激情在线视频 | 中文字幕av在线一二三区 | 2023亚洲天堂 | 欧美精品一区在线发布 | 91亚洲国产成人久久精品网站 | 国产伦精品一区二区三区精品视频 | 天天舔天天 | 欧美视频在线观看 | 久久久久亚洲av毛片大全 | 日韩久久在线 | 日韩欧美一区二区在线播放 | 国产91在线 | 亚洲 | 午夜影院普通用户体验区 | 日韩在线视频免费观看 | 亚洲精品一区中文字幕乱码 | 久久久综合精品 | 国产区精品在线观看 | caoporn国产精品免费公开 | 午夜精品久久 | 国产探花在线精品一区二区 | 午夜视频免费 | 免费精品 | 国产精品3区 | 日本久久网 | 天天艹日日干 | 日韩综合网| 一区二区三区免费观看 | 狠狠干狠狠操 | 久久伊人在 | 国产一区二区三区免费 | 日韩精品视频在线免费观看 | 午夜大片| 国产亚洲成av人片在线观看桃 | 青青草在线视频免费观看 | 99久久久久久 | 激情免费视频 |