我正在使用拖放可重排事件創建日曆。在手勢期間切換對象(拖放)
視圖層次是這樣的:
視圖控制器 - 滾動型 - CalendarWeekView - 使用EventView
滾動視圖,使傳呼,我分別用一週的時間。爲了能夠在幾個星期內連續滾動,我有三個WeekCalendarView對象,在我滾動時回收。單個的EventViews是CalendarWeekView的子視圖。
我希望能夠拖動並從一週下降一個EventViews到另一個。
我有可見,每週工作細跟的上一個EventViews設置UILongPressGestureRecognizer內拖放。我在周視圖中添加了「熱邊緣」來觸發滾動,使用這個功能,我可以從當前的周拖放到周的任何一側。
但是,如果我滾動一個多星期遠離我最初一週的看法發生了回收和WeekView這創造和「擁有」我拖着得到回收的EventViews(屬性重置)。我正在拖動的事件對象被重置並重新使用,從而消除了拖動行爲(或者最多可以改變拖動中拖動的事件!)。
我想我需要去耦從WeekViews拖動視圖,爲我的事件創建新的對象,而它被牽扯進來。
如何將EventView中的長按手勢事件傳遞給此新對象?
謝謝!這很好。 – alexkent
非常抱歉,我過早地接受了你的答案。您的解決方案將手勢的目標移動到新視圖,但是當原始視圖被回收時,手勢識別器本身(現在定位到新視圖)消失。 :(是否有可能移動的手勢識別器本身我嘗試了很明顯的:dragView.gestureRecognizers = sender.gestureRecognizers; sender.gestureRecognizers =零;而零殺死手勢 – alexkent
更好的方式來切換哪個視圖擁有GR是?與addGestureRecognizer:和removeGestureRecognizer :.但它有可能removeGestureRecognizer:會以同樣的方式重新設置GR見編輯你也許可以只保留使用了同樣的觀點,而不是移動GR –