2016-04-16 9 views
-3

それは異常ですが、UIPanGestureRecognizerをビューに追加すると機能しません。それは、白表示が赤ビューのサブビューであることを、私の見解です:UIPanGestureRecognizerは動作しません

enter image description here

メインビュー:私はタップして白表示をドラッグすると

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

それは移動しません。

+0

それPangestureRecognizer、ないTapgestureRecognizerだ??? – Khuong

+1

何が問題なのですか?ジェスチャ認識機能を白い表示に割り当てました。 – t0mm13b

+0

@ t0mm13b、私は白いビューを移動することはできません、それは問題です。 – Maysam

答えて

0
ここ

答えは次のとおりです。

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

[]を使用することはできません。

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

希望します。

+0

これは問題ではありません – Maysam

5

はこれを試してみてください。

whiteView.userInteractionEnabled=true 
関連する問題