2016-08-10 2 views
1

У меня есть Scrollview Wich Загрузите на изображение для увеличения и уменьшения масштаба, проблема заключается в том, что я хочу, чтобы образ должен быть загружен полным, как этотSwift изображения не помещается в Scrollview

http://www.capital.cl/wp-content/uploads/2015/04/avengers.jpg

так пользователь может увидеть полное изображение первого

, но это выглядит как этого

IosEmulator

это треск е

импорт UIKit

класс Paso2: UIViewController, UIScrollViewDelegate {

@IBOutlet weak var scrollView: UIScrollView! 
@IBOutlet weak var noCheckBox2: CheckBox! 
@IBOutlet weak var siCheckBox2: CheckBox! 

var imageView = UIImageView() 

override func viewDidLoad() { 
    super.viewDidLoad() 


    scrollView.delegate = self 

    // imageView.contentMode = UIViewContentMode.ScaleAspectFill 
    // imageView.clipsToBounds = true 
    imageView.image = UIImage(named: "avengers.jpg") 

    let imagee = UIImage(named: "avengers.jpg") 
    let size = imagee?.size 


    imageView.frame = CGRectMake(0, 0, size!.width, size!.height) 
    imageView.contentMode = .Top 
    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 = 1 
    scrollView.maximumZoomScale = 4 
    scrollView.zoomScale = minScale 

    centerScrollViewContents() 

} 



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 
    // scrollView.frame = contentsFrame 
} 

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

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

Помощь плз

ответ

2

Просто изменить это.

 imageView.contentMode = .ScaleAspectFit 

без увеличения

enter image description here enter image description here

с увеличением

2

Вы должны использовать .contentMode свойство UIImageView для правильного представления изображения.

Это небольшое сравнение режимов содержимого. enter image description here

0

Вы хотите отображать полное изображение без прокрутки или вы хотите отображать прокручиваемое изображение?

Попробуйте этот код для быстрого старта:

class ViewController: UIViewController { 

@IBOutlet weak var scrollView: UIScrollView! 
var imageView = UIImageView() 

private var imageViewOriginalSize = CGRect() 

override func viewDidLoad() { 
    super.viewDidLoad() 


    imageView.image = UIImage(named: "avengers.jpg") 
    imageView.contentMode = .ScaleAspectFit 
    let size = UIScreen.mainScreen().bounds 
    imageViewOriginalSize = size 
    imageView.frame = CGRectMake(0, 0, size.width, size.height) 
    scrollView.addSubview(imageView) 

    let pinch = UIPinchGestureRecognizer(target: self, action: #selector(ViewController.pinchGestureRecognizerAction)) 
    self.scrollView.addGestureRecognizer(pinch) 

} 

func pinchGestureRecognizerAction(gestureRecoginzer: UIPinchGestureRecognizer) { 
    imageView.frame.size.height = imageViewOriginalSize.height*gestureRecoginzer.scale 
    imageView.frame.size.width = imageViewOriginalSize.width*gestureRecoginzer.scale 
    imageView.frame.origin.x = imageViewOriginalSize.origin.x*gestureRecoginzer.scale 
    imageView.frame.origin.y = imageViewOriginalSize.origin.y*gestureRecoginzer.scale 
    scrollView.contentSize = imageView.frame.size 
}} 
+0

я хочу, чтобы пользователь, чтобы увидеть полное изображение первого и от этого начинают, чтобы увеличить или уменьшить масштаб –

+0

Я нашел это: https://github.com/dblock/ARTiledImageView Может быть, вы должен использовать этот pod? –

Смежные вопросы