ios - 不允许在某些 View 上进行触摸交互?

标签 ios swift

我有一个类,用于处理按钮上的触摸功能,这些按钮也是 Post 类。

我想要的逻辑是“如果 post.user 等于当前的 firebaseuser,则不允许用户移动按钮”

这是我尝试过的:

在我的“DragButtonsClass”中,我收到一条通知,该通知正在 TouchesBegan 上发送到我的 View Controller 。

在我看来

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 数组对齐。我试图通过发送帖子来检查帖子的用户是否与当前用户相同,然后关闭用户交互。

我打印出“应该可以工作”,但按钮仍然可以拖动。

这似乎是一种 super 草率和迂回的方式来做到这一点,最重要的是它不起作用。我读到关闭 userInteraction 是阻止触摸被识别的一种方法。

有什么想法吗?

最佳答案

最终只是在我的按钮类中设置了一个 bool“canBeDragged”,当创建按钮时,当前用户的 ID 会与从 firebase 中提取的信息进行比较,并设置 bool。然后我只是检查按钮是否可以在触摸移动之前被拖动。

关于ios - 不允许在某些 View 上进行触摸交互?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38704434/

相关文章:

swift - 使用SKScene制作通用应用程序

ios - 自定义 UIControl( slider )在与交互之前不遵守约束

ios - 使用 Storyboards 比动画 UIViews 更好?

ios - ASIHTTPRequestErrorDomain 代码=3 需要身份验证

iphone - 删除开发者资料

ios - 如何在列表中搜索具有特定属性的对象的索引?

swift - 如何在 Swift 的图表中启用小数?

ios - Swift drawInRect 无法展开 Optional.None

ios - 如何管理每个tableviewCell中的AVAudioPlayer isPlaying?

javascript - 位置 : fixed; element doesn't work correctly on iOS 上的触摸事件