2016-08-10 4 views
1

ich eine Scroll Weicht Last ein Bild habe zum Vergrößern und Verkleinern, das Problem ist, dass ich das Bild will voll geladen werden wie diesesSwift Bild paßt nicht in den Scroll

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

so der Benutzer kann das komplette Bild zuerst

sehen, aber es sieht aus wie diese

IosEmulator

dies ist der Kabeljau e

Import UIKit

Klasse 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 
} 

Hilfe plz

Antwort

2

Genau dies ändern.

 imageView.contentMode = .ScaleAspectFit 

ohne Zoom

enter image description here enter image description here

mit Zoom

2

Sie sollten .contentMode Eigenschaft des UIImageView für die korrekte Darstellung des Bildes verwenden.

Dies ist ein kleiner Vergleich der Inhaltsmodi. enter image description here

0

Sie möchten das gesamte Bild anzeigen, ohne zu scrollen, oder möchten ein Bild mit Bildlauf anzeigen?

Versuchen Sie diesen Code für den schnellen Start:

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

ich möchte der Benutzer die volle Bild zuerst zu sehen, und von diesem beginnen zu vergrößern oder –

+0

verkleinern Ich habe Folgendes gefunden: https://github.com/dblock/ARTiledimageview Vielleicht bist du es sollte diese Kapsel verwenden? –