2016-05-20 17 views
1

それで、私は、ピクチャ上でパンジェスチャを作成し、それを移動させる方法を学びました。それで、私はTableViewCellで同じことをしようとします:パンのジェスチャーで水平に動かすと、反応しません:UITableViewCellにパンジェスチャを適用しようとしましたが、失敗しました。なぜですか?

TableViewController.swiftを作成しましたので、正常に動作していることを確認し、動的テーブルセルで コード:

var todoItems = [TodoItem]() 
override func viewDidLoad() { 
    super.viewDidLoad() 
    createSomeData() 
} 
override func numberOfSectionsInTableView(tableView: UITableView) -> Int { 
    // #warning Incomplete implementation, return the number of sections 
    return 1 
} 

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    // #warning Incomplete implementation, return the number of rows 
    return todoItems.count 
} 

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cell = tableView.dequeueReusableCellWithIdentifier(constant.cellIdentifier, forIndexPath: indexPath) as! TodoTableViewCell 
    cell.todoItem = todoItems[indexPath.row] 

    return cell 
} 

その後、私はTableViewController.swiftに、その後、CTRL +ドラッグPan Gesture Reconizer、それが接続インスペクタに接続していることを確認し、tableviewcell上にドロップし、パレットからPan Gesture Reconizerを拾う:

@IBAction func handlePan(gesture: UIPanGestureRecognizer) { 
    let transition = gesture.translationInView(self.view) 
    switch gesture.state{ 
    case .Changed: 
     if let view = gesture.view { 
      view.center = CGPoint(x: view.center.x + transition.x, y: view.center.y) 
     } 
     gesture.setTranslation(CGPointZero, inView: self.view) 

    default:break 
    } 

} 

それはdoesnの仕事。どうして?

答えて

0

あなたは、これはあなたを助ける

var panRecognizer: UIPanGestureRecognizer! 
@IBOutlet weak var tableView: UITableView? 

override func viewDidLoad() { 
super.viewDidLoad() 

    self.panRecognizer = tableView?.panGestureRecognizer; 
    self.panRecognizer .addTarget(self, action: "pan:") 
    tableView?.addGestureRecognizer(self.panRecognizer) 

} 

func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool { 
    return true 
} 

func pan(rec:UIPanGestureRecognizer){ 
    println("PanGesture Activated") 
} 

希望は、以下のコードでプログラム的PanGestureを追加してみてくださいすることができます。

関連する問題