某些观点不允许触摸互动?

时间:2016-08-01 17:09:01

标签: ios swift

我有一个课程,我在按钮上处理我的触摸功能,这些按钮也是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")
        }

    }

}

基本上我会在按钮创建时为这些按钮分配标签,这些标签与我的Posts数组对齐。我试图检查帖子的用户是否与当前用户相同,然后通过发送,然后关闭用户互动。

我得到"应该工作"打印出来但按钮仍然可以拖动。

这似乎是一种超级邋and和迂回的方式来做到这一点,最重要的是它不起作用。我已经读过,关闭userInteraction是一种阻止触摸被识别的方法。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

结束只在我的按钮类中设置bool“canBeDragged”,当创建按钮时,将当前用户的ID与从firebase中提取的信息进行比较,并设置bool。然后我只是检查按钮是否可以在我的touchesMoved之前拖动。