2015-04-22 25 views
0

我有一個ScrollView內的ImageView。我可以放大。但是,每當我釋放光標,整個圖像就會適合屏幕。我只想顯示圖像的縮放部分。這是我的代碼。Swift中縮放UIImageView裏面的滾動視圖

func centerScrollViewContents(){ 
    let boundsSize = scrollView.bounds.size 
    var contentsFrame = imageView.frame 

    if contentsFrame.size.width < boundsSize.width{ 
     contentsFrame.origin.x = (boundsSize.width - contentsFrame.size.width)/2 
    }else{ 
     contentsFrame.origin.x = 0 
    } 

    if contentsFrame.size.height < boundsSize.height { 

     contentsFrame.origin.y = (boundsSize.height - contentsFrame.size.height)/2 
    }else{ 
     contentsFrame.origin.y = 0 
    } 

    imageView.frame = contentsFrame 

} 

func scrollViewDidZoom(scrollView: UIScrollView) { 
    centerScrollViewContents() 
} 

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

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 

    // Dispose of any resources that can be recreated. 
} 
override func viewDidAppear(animated: Bool) { 

    scrollView.delegate = self 
    imageView.frame = CGRectMake(16, 16, scrollView.frame.size.width, scrollView.frame.size.height) 
    imageView.contentMode = UIViewContentMode.ScaleToFill 
    imageView.image = UIImage(named: imgstr) 
    var imagee = UIImage(named: imgstr) 
    let size = imagee?.size 
    //imageView.contentMode = UIViewContentMode.ScaleAspectFit 
    imageView.userInteractionEnabled = true 
    scrollView.addSubview(imageView) 
    scrollView.contentSize = size! 
    let scrollViewFrame = scrollView.frame 
    let scaleWidth = scrollViewFrame.size.width/scrollView.contentSize.width 
    let scaleHeight = scrollViewFrame.size.height/scrollView.contentSize.height 
    let minScale = min(scaleHeight, scaleWidth) 

    scrollView.minimumZoomScale = minScale 
    scrollView.maximumZoomScale = 1 
    scrollView.zoomScale = minScale 

    centerScrollViewContents() 


} 

我刪除centerScrollViewContents(),但我得到了相同的結果

回答

相關問題