2016-12-07 13 views
1

I have attached an image here Ich bin ein Neuling zu iOS Entwicklung. Meine Frage lautet wie folgt:mit Gestenerkenner auf einer Unteransicht von UIScrollView - Swift

Ich möchte meine scrollView außerhalb seiner Breitensteuerung mit Geste streichen. Um genau zu sein Ich möchte, dass mein UIScrollView zu blättern, wenn Swipe im subview durchgeführt wird (es gibt nur eine subview).

Ich habe durch mehrere Stackoverflow Frage gegangen, aber ich konnte nicht ganz eine richtige Antwort bekommen.

Ihre Hilfe wird sehr geschätzt!

class ViewController: UIViewController, UIGestureRecognizerDelegate { 

@IBOutlet weak var scrollView: UIScrollView! 

var images = [UIImageView]() 
override func viewDidLoad() { 
    super.viewDidLoad() 
} 

override func viewDidAppear(_ animated: Bool) { 
    var contentWidth: CGFloat = 0.0 
    for x in 0...2 { 
     let image = UIImage(named: "icon\(x).png") 
     let imageView = UIImageView(image:image) 
     images.append(imageView) 

     var newX: CGFloat = 0.0 

     newX = scrollView.frame.size.width/2 + scrollView.frame.size.width * CGFloat(x) 
     contentWidth += newX 

     scrollView.addSubview(imageView) 
     imageView.frame = CGRect(x: newX - 75, y: (scrollView.frame.size.height/2) - 75, width: 150, height: 150) 

    } 
    scrollView.clipsToBounds = false 
    scrollView.contentSize = CGSize(width: contentWidth, height: view.frame.size.height) 
} 

Wie Sie im Bild die Breite meines UIScrollView hat einen grauen Hintergrundfarbe sehen (ich das getan hätte meinen Standpunkt zu erläutern). Jetzt möchte ich auch die Bildlaufansicht scrollen, wenn ein Benutzer in der Unteransicht (nicht grau) UIImageView wischt.

Ich habe die folgende Funktion und machte eine Rückkehr des ja hinzugefügt beiden Ansichten zu ermöglichen Gesten gleichzeitig zu erkennen. Aber ich bekomme nicht das gewünschte Ergebnis. Kann jemand einen Blick darauf werfen?

func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool { 
     return true 
    } 
+1

Was haben Sie versucht? Poste deinen Code. PS: Wenn Sie die richtige Inhaltsgröße für ScrollView festlegen, wird standardmäßig ein Bildlauf ausgeführt. – Venkat

+0

@ Venkat, danke für Ihre Antwort, Sie können meinen Code oben sehen. – user2396625

+0

Warum halten Sie scrollView in Middle? Warum hältst du es nicht auf Vollbild? – Venkat

Antwort

0

Sie können Touch-Ereignisse in dieser Teilansicht an Scrollview weiterleiten. siehe hierzu answer

+0

Vielen Dank für Ihre Antwort, ich werde in die Lösungen schauen und sehen, was ich bekommen werde. – user2396625

1

Platz in viewDidLoad Funktion.

Was es schließlich tut, ist es Scrollgeste Erkenner suchen Gesten in Hauptansicht zuweist. Dadurch wird der Inhalt von scrollview automatisch verschoben, auch wenn Gesten außerhalb des scrollview rect liegen.

+0

Dies funktioniert nahtlos, nicht sicher, was OP fehlt. – Meshach

Verwandte Themen