2016-04-16 6 views
-3

Es ist seltsam, aber wenn ich eine UIPanGestureRecognizer zu einer Ansicht hinzufügen, funktioniert es nicht. Es ist meine Ansicht, dass weiße Ansicht ein Subview der roten Ansicht ist:UIPanGestureRecognizer funktioniert nicht

enter image description here

Hauptansicht:

@IBOutlet weak var redView: UIView! 
@IBOutlet weak var whiteView: UIView! 
override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 
    let panRecognizer = UIPanGestureRecognizer(target:self, action:#selector(ViewController.handlePan)) 
    whiteView.gestureRecognizers = [panRecognizer]   
} 


func handlePan(recognizer:UIPanGestureRecognizer) { 
    //foo 
} 

Wenn ich die weiße Ansicht tippen und ziehen Sie es sich nicht bewegt.

+0

Es ist ein PangestureRecognizer, nicht TapgestureRecognizer ??? – Khuong

+1

Was ist die Frage? Sie haben die Gestenerkennung der weißen Ansicht zugewiesen. – t0mm13b

+0

@ t0mm13b, ich kann die weiße Sicht nicht verschieben, es ist das Problem. – Maysam

Antwort

0

Hier ist die Antwort:

class ViewController: UIViewController { 

    @IBOutlet weak var redView: UIView! 
    @IBOutlet weak var whiteView: UIView! 

    var lastLocation:CGPoint = CGPointMake(0, 0) 


    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 
     let panRecognizer = UIPanGestureRecognizer(target:self, action:#selector(ViewController.handlePan)) 
     whiteView.addGestureRecognizer(panRecognizer) 

    } 


    func handlePan(recognizer:UIPanGestureRecognizer) { 
     let translation = recognizer.translationInView(redView) 
     whiteView.center = CGPointMake(lastLocation.x + translation.x, lastLocation.y + translation.y) 
    } 

    override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { 
     // Promote the touched view 
     lastLocation = whiteView.center 

    } 
} 
-2

Wenn Sie eine schnelle Sprache für die Methode verwenden, können Sie [] nicht verwenden.

var PanGesture = UIPanGestureRecognizer(target: self, action: "respondToPanGesture:") 
whiteView.addGestureRecognizer(PanGesture) 

Ich hoffe, es hilft.

+0

Es ist nicht das Problem – Maysam

5

versuchen Sie dies:

whiteView.userInteractionEnabled=true 
Verwandte Themen