我有一个课程,我在按钮上处理我的触摸功能,这些按钮也是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是一种阻止触摸被识别的方法。
有什么想法吗?
答案 0 :(得分:0)
结束只在我的按钮类中设置bool“canBeDragged”,当创建按钮时,将当前用户的ID与从firebase中提取的信息进行比较,并设置bool。然后我只是检查按钮是否可以在我的touchesMoved之前拖动。