【发布时间】:2012-09-30 07:53:33
【问题描述】:
我正在创建一个带有拖放可重新排列事件的日历。
视图层次结构如下所示:
ViewController - ScrollView - CalendarWeekView - EventView
滚动视图启用了分页,我一次显示一周。为了实现跨周的连续滚动,我在滚动时回收了三个 WeekCalendarView 对象。各个 EventView 是 CalendarWeekView 的子视图。
我希望能够将 EventViews 从一个星期拖放到另一个星期。
我在可见的一周内通过 EventViews 上的 UILongPressGestureRecognizer 设置进行了拖放操作。我在 WeekView 中添加了“热边缘”以触发滚动,这样我就可以从当前一周拖放到它工作的任一侧。
但是,如果我从第一周滚动超过一周,则会发生视图回收,并且创建并“拥有”我正在拖动的 EventView 的 WeekView 将被回收(属性重置)。我正在拖动的事件对象被重置并重用,从而终止了拖动行为(或者最好是在拖动中更改被拖动的事件!)。
我想我需要将拖动视图与 WeekViews 分离,在拖动时为我的事件创建一个新对象。
如何将 EventView 中的长按手势事件传递给这个新对象?
【问题讨论】:
标签: ios cocoa-touch drag-and-drop uigesturerecognizer