2016-08-09 76 views
3

Ich habe eine UIView und fügen Sie eine UIScrollView hinzu. In der ScrollView befindet sich eine UIImageView.
Ich möchte die Bildansicht per Knopfdruck vergrößern. Wenn die Bildansicht gezoomt ist, sollte es möglich sein, einen Bildlauf durchzuführen, aber das funktioniert nicht.ScrollView scrollt nicht in swift

Zur Zeit habe ich, dass:

self.imageView = UIImageView() 
self.imageView.image = image 
self.imageView.frame = self.contentView.bounds 

self.scrollView = UIScrollView() 
self.scrollView.frame = self.contentView.bounds 
self.scrollView.contentSize = self.contentView.bounds.size 
self.scrollView.addSubview(self.imageView) 

self.contentView.addSubview(self.scrollView) 

und dass:

@IBAction func zoomPicture() { 
    if (scale <= 1.5) { 
     scale = scale + 0.1 
     scrollView.transform = CGAffineTransformMakeScale(scale, scale) 
     scrollView.zoomScale = scale 
     scrollView.maximumZoomScale = 1.5 
     scrollView.minimumZoomScale = 1.0 
     scrollView.contentSize = contentView.bounds.size 
     scrollView.scrollEnabled = true 
    } 
} 

meiner Klasse auch implementiert UIScrollViewDelegate und ich den Delegierten in der viewDidLoad() Funktion. Ich habe auch die viewForZoomingInScrollView Funktion hinzugefügt. Der Zoom funktioniert, aber ich kann nicht scrollen.

+1

Versuchen 'gesetzt self.scrollView.contentSize' größer als' self.contentView.bounds' –

+0

Nizza, funktioniert! Spielt es eine Rolle, wie groß die Inhaltsgröße ist oder nicht? – mafioso

+0

Ich denke, Sie antworten in diesem Link, http://stackoverflow.com/questions/11318845/ios-add-imageview-in-a-scrollview-to-have-zoom –

Antwort

4

Für diese Ausgabe, die Sie setzen müssen self.scrollView.contentSize größer als self.contentView.bounds, so dass es die richtige Raum erhalten zu blättern.

dieser Linie

self.scrollView.contentSize = self.contentView.bounds.size 

auf diese ersetzen:

self.scrollView.contentSize = self.contentView.bounds.size*2 //or what ever size you want to set 
+0

Sie gaben mir die richtige Antwort oben, also danke – mafioso

+0

Sie sind willkommen :) –

+0

wissen Sie auch, warum horizontale Scrolling im Querformat nicht funktioniert? – mafioso

0

Versuchen Sie folgendes:

@IBAction func zoomPicture() { 
    if (scale <= 1.5) { 
     scale = scale + 0.1 
     scrollView.zoomScale = scale 
     scrollView.maximumZoomScale = 1.5 
     scrollView.minimumZoomScale = 1.0 
     let size = contentView.bounds.size 
     scrollView.contentSize = CGSize(width: size.width * scale, height: size.height * scale) 
     scrollView.scrollEnabled = true 
    } 
}