iPhone 4 iOS 5 高级ScrollView 技术:长按拖放按钮

Posted

技术标签:

【中文标题】iPhone 4 iOS 5 高级ScrollView 技术:长按拖放按钮【英文标题】:iPhone4 iOS5 Advanced ScrollView techniques: drag and drop a button with longpress 【发布时间】:2011-11-21 03:26:30 【问题描述】:

我记得 WWDC 2011 的一个处理滚动视图的视频有一个演示,演示者 (Eliza) 演示了如何沿着滚动视图无限滚动。该演示使用了一堆预先生成的房屋和月亮。

这是幻灯片的链接,但我没有看到房屋演示或相关代码。 http://adcdownload.apple.com//wwdc_2011/adc_on_itunes__wwdc11_sessions__pdf/104_advanced_scroll_view_techniques.pdf

这是他们可用的代码,但这不是房屋和月亮的演示: http://developer.apple.com/library/ios/samplecode/StreetScroller/Introduction/Intro.html

那个演示让我感兴趣的是 Eliza 如何能够通过长按来拾取月亮并将其定位在 UIScrollView 上的任何位置。我想在我的应用中添加类似的技术。

我查看了高级滚动视图技术的源代码,但没有那个示例。

谁能帮我找出如何拿起 UIControl 并使用长按将其拖放到托管视图中的任何位置?

更新:

我找到了这段代码:

[button addTarget:self action:@selector(draggedOut:withEvent: ) forControlEvents: UIControlEventTouchDragOutside | UIControlEventTouchDragInside];

- (void) draggedOut: (UIControl *) c withEvent: (UIEvent *) ev 

    c.center = [[[ev allTouches] anyObject] locationInView:self.markerView];

这会拾取并定位按钮,但是,按钮也会因触摸而被激活。拖动事件几乎立即开始,而我希望至少有一秒钟的延迟和缩放效果以指示按钮已被选中。

感谢任何帮助!

【问题讨论】:

【参考方案1】:

我不确定,但也许子类化 UIButton 会帮助你 On ***

或者在Isignmeout 上有相关教程。

【讨论】:

这越来越近了。我确实记得代码使用了长按识别器,并且它可能在手势结束时丢弃了 UIControl。我难以回忆的是它是使用单个手势识别器还是长按与其他东西的组合

以上是关于iPhone 4 iOS 5 高级ScrollView 技术:长按拖放按钮的主要内容,如果未能解决你的问题,请参考以下文章

在iPhone 4或iOS 5中可以直接使用Wifi吗?

iPhone 4 iOS 5 NSFetchedResultsController 如何选择批量大小?

推送通知在 iPhone 3GS 中不起作用。它适用于最新的 IOS 设备,如 iPhone 4、4s、5

我可以使用 iPhone 5(版本 10.3.4)进行 Flutter iOS 调试吗?

为 iOS 4 App 添加 iPhone 5 xib

带有 iOS 5.0 的 Xcode 4.2 未检测到 iPhone iOS 5.1.1