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是阻止觸摸被識別的一種方法。
任何想法?
我會稍微改變你的代碼。我想你想到達一些按鈕,在哪裏(如果用戶被允許)可以添加一些評論。爲什麼不用普通的單擊事件來創建按鈕,並檢查點擊事件處理程序(如果用戶被允許或不允許)?而且,如果用戶不被允許,您可以將按鈕變灰。 – derdida
@derdida我只需要允許用戶移動他們沒有創建的按鈕,所以我試圖通過檢查標記並且然後使用該索引對我的Post類數組檢查創建者,並檢查post.user它。 我已經有了這個工作,就像我可以檢測到,如果用戶在該按鈕是當前用戶是正確的,我只是不知道如何防止觸摸移動然後發生。 我也失去了我的內置我猜?當我按下自己的自定義類或者當我添加觸摸開始時觸摸按鈕點擊? 我認爲不允許用戶交互會工作,但是 –