2016-07-10 2 views
-1

私はテーブルビューを持ち、テーブルビューの外にあり、テーブルビューの外にあるビューは1つあります。テーブルビューからドロップビューに要素をドラッグ&ドロップしようとしています。ビューは次のようになります。Swiftのドロップポイントに関する問題

enter image description here

図に示すように、テーブルビューがあります。私が達成しようとしているのは、ユーザーがテーブルビューの行を長押ししたときに、選択した項目をドラッグアンドドロップ可能な領域にドラッグアンドドロップする必要があるということです。長い押して私は行のスナップショットを作成し、サブビューとして追加する、今私はドロップ領域にサブビューをドラッグしようとしています。私はこれをすることができません。誰もがこの問題で私を助けることができます。

var stateDropBoard = CGRectContainsPoint(ingBoardDropView.frame, touchPoint) 

    if(stateDropBoard) 
    { 
     print("DROPPED")    
    } 

私はそれを動作させることができません。私がやっていることを達成する方法はありますか?

答えて

0

親ビューでは終了メソッドを使用します。このメソッドの中でテストを実行して、ユーザーが緑のカラー表示の上に項目をドロップしたかどうかを確認します。

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { 

     CGPoint location = [[touches anyObject] locationInView:self.view]; 
     CGRect fingerRect = CGRectMake(location.x-5, location.y-5, 10, 10); 

     for(UIView *view in self.view.subviews){ 
     CGRect subviewFrame = view.frame; 

     if(CGRectIntersectsRect(fingerRect, subviewFrame)){ 
      // this is your touched view 
     } 

     } 

    } 

ここにあなたが尋ねたスウィフトバージョンです!最適化はほとんどありません。

override func touchesEnded(touches: Set<UITouch>, withEvent event: UIEvent?) { 
     let touch = touches.first! as UITouch 
     let location = touch.locationInView(self.view) 
     let hitTest = self.targetView.hitTest(location, withEvent:event) 

     if (hitTest != nil) { 
      print("User finished touch inside your target view!") 
     }else{ 
      print("User finished touch outside your target view"); 
     } 

    } 

注:あなたがあなたのターゲットビューのための場所で正しい制約があることを確認してください。

私はあなたがここからそれを取ることができると思います。お役に立てれば。

+1

スウィフトコードを入力することはできますか? –

+0

これは機能しますか? –

+0

いいえ、それはしませんでした。私はちょうど別の解決策を見つけ、問題を解決しました。 –