0

Ich zeige drei Ansichten in meiner CollectionView-Zelle. eine volle in der Mitte und Vorschau der nächsten und vorherigen an der Ecke der ContentView. Und mit panGesture wischen Sie die mittlere Ansicht nach oben. Wie kann ich pangGesture in Seitenansichten deaktivieren? HierGestensteuerung auf sideViews in contentView

ist das Bild: enter image description here

Ich habe hinzugefügt panGestureRecognizer auf Content-Ansicht. aber ich möchte nicht, dass die Seitenansicht die Geste erkennt, und ich möchte auch Seitenbilder machen, die ziemlich schwach in der Farbe sind. wie kann ich es tun?

Antwort

0

Sie können UIGestureRecognizerDelegate verwenden. Implementieren Methode:

func wasDragged(gestureRecognizer: UIPanGestureRecognizer) { 

    if gestureRecognizer.state == UIGestureRecognizerState.began { 
     print("was dragged began") 
    } 
    if gestureRecognizer.state == UIGestureRecognizerState.changed { 
     print("was dragged change \(gestureRecognizer.location(in: self.view))") 
     testTouches(touches: gestureRecognizer.location(in: self.view)) 
    } 
    if gestureRecognizer.state == UIGestureRecognizerState.ended { 
     print("was dragged ended") 
    } 
} 

als Methode implementieren berührt Punkte zu prüfen:

func testTouches(touches: CGPoint) { 
    // Get location of touch 

    let touchLocation = touches 
    // Convert the location of the side views to this view controller's view coordinate system 
    let sideViewFrame = self.view.convert(sideView.frame, from: sideView.superview)// Check if touch is inside side view 
    if sideViewFrame.contains(touchLocation) { 
      // do nothing 
     } 
     else { 
      // do something 
     } 
} 
Verwandte Themen