Skip to content

Instantly share code, notes, and snippets.

@Bigigrammer
Created June 15, 2019 16:53
Show Gist options
  • Save Bigigrammer/420dcb00f0a73ab3d82d60eab8d970cd to your computer and use it in GitHub Desktop.
Save Bigigrammer/420dcb00f0a73ab3d82d60eab8d970cd to your computer and use it in GitHub Desktop.
import UIKit
class ViewController: UIViewController, UIScrollViewDelegate {
@IBOutlet var scrollView: UIScrollView!
let imageView = UIImageView()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
scrollView.delegate = self
scrollView.addSubview(imageView)
scrollView.alwaysBounceVertical = true
scrollView.alwaysBounceHorizontal = true
scrollView.maximumZoomScale = 2
scrollView.minimumZoomScale = 0.001
}
@IBAction func showImg1(_ sender: Any) {
let image0 = UIImage(named: "Image")
// ここ大事
scrollView.zoomScale = 1
imageView.image = image0
imageView.frame.size = image0!.size
scrollView.contentSize = image0!.size
adjustImageFitInScrollView()
}
@IBAction func showImg2(_ sender: Any) {
let image1 = UIImage(named: "Image-1")
// ここ大事
scrollView.zoomScale = 1
imageView.image = image1
imageView.frame.size = image1!.size
adjustImageFitInScrollView()
}
public func adjustImageFitInScrollView(){
guard let img = self.imageView.image else {return}
let w_scale = scrollView.frame.width / img.size.width
let h_scale = scrollView.frame.height / img.size.height
let scale = min(w_scale, h_scale)
scrollView.minimumZoomScale = scale
print(scrollView.contentSize)
scrollView.setZoomScale(scale, animated: true)
}
func viewForZooming(in scrollView: UIScrollView) -> UIView? {
return imageView
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment