2016-08-01 7 views
0

ボタンのタッチ機能を扱うクラスがあり、そのボタンもPostクラスです。特定のビューでタッチ操作を許可していませんか?

私は行くよロジックは「post.userは現在firebaseuserに等しい場合、ユーザーがボタンを移動することはできません」である

は、ここに私が試したものです:

で私の "DragButtonsClass" TouchesBeganのビューコントローラに通知が送られてきました。私は、彼らが作成していると、これらのタグは、私の投稿配列と整列として

func touchesStarted(notif : NSNotification) { 
    if let dict = notif.userInfo! as? [NSObject: AnyObject] { 

      let tag = dict["tag"]! 
      let tagInt = Int(String((tag))) //this is probably super sloppy, don't know how else to change an AnyObject to an Int though. 
      let post = postArray[tagInt! - 1] 

     let postbutton = self.view.viewWithTag(tagInt!) 
     if post.user == currentUser { 


     postbutton?.userInteractionEnabled = false 
     print("Should be working") 
     } else { 
      print("Didn't work") 
     } 

    } 

} 

は基本的に私がボタンにタグを割り当てるてるんだビューで

。私はポストのユーザーが現在のユーザーと同じであるかどうかをチェックし、それを送信してユーザーのやりとりを止めようとしています。

印刷するには「動作しています」が表示されていますが、ボタンはドラッグ可能です。

これはこれを行うには非常に控えめでラウンドアバウトのように思えますが、最も重要なことは動作しません。私は、userInteractionを無効にすることは、接触が認識されないようにする方法だと読んだことがあります。

アイデア?

+0

コードを少し変更します。私はあなたがいくつかのボタンに到達したいと思う、(ユーザーが許可されている場合)いくつかのコメントを追加することができます。通常のクリックイベントでボタンを作成し、クリックイベントハンドラをチェックインするのはなぜですか?また、ユーザーが許可されていない場合は、ボタンをグレー表示できます。 – derdida

+0

@derdida作成していないボタンだけをユーザーが移動できるようにする必要があるため、タグを確認してその投稿の配列をそのインデックスでチェックし、post.userをそれ。 私は、そのボタン上のユーザーが現在のユーザーであるかどうかを検出できるように、ちょっとした作業をしています。 私は私の想像通りに私のものを失った?ボタンをクリックしたときに自分のカスタムクラスを作成したとき、またはタッチを追加したときに始まる? 私はユーザーとのやりとりがうまくいくとは思っていませんでしたが、 –

答えて

0

ボタンのクラスにブール「canBeDragged」を設定するだけで、ボタンが作成されると、現在のユーザーのIDとfirebaseから取得された情報が比較され、ブールが設定されます。その後、私はボタンが私のtouchesMovedの前にドラッグできるかどうかを確認しました。