ios - 在 UITableView 中用手指在屏幕上绘图

标签 ios objective-c uitableview touches

我正在关注这个关于在 UIView(子类)层中在屏幕上绘图的优秀小教程。 http://spritebandits.wordpress.com/ 它只是工作。

只有一件事。我将此 View 放置为 UITableViewCell 的 subview ,它自然地显示为 UITableView 的一部分。 我想当我将它放在 UIScrollView 中时我也会遇到同样的问题。 (无论如何UITableView继承自UIScrollView)

只要相关的移动是水平的,触摸就会由我的绘画 View 触发。一旦我稍微垂直地移动手指,即使是部分移动,UITableView 也会接管并滚动表格。

当触摸实际上在我的视野范围内时,是否有任何适当的方法可以停止 table 以控制触摸?

如果它很重要:我正在使用 Storyboard。该单元格是一个原型(prototype)单元格,具有自己的 UITableViewCell 子类。

最佳答案

我已经使用您所说的同一类“Canvas”以及 UITableViewCell 内部实现了此功能。但我没有使用整个单元格进行绘制,仅使用 UITableView 内部的一个 UIView 作为 subview 。

当 UIView(我允许绘图的单元格的 subview )触发touchesBegan 或touchesEnded 时,我通过激活和停用UITableView 滚动来实现整个用户体验。因此,当他们在 UIView 内触摸/移动时,他们正在绘图。当它在外面时,它们会滚动。因此他们无法在 UIView 上滚动,因为他们将进行绘制。

您的情况的问题是,由于整个单元格是绘图 View ,因此用户无法在这个具体单元格中滚动,因为它是绘图单元格。

希望这会有所帮助。

关于ios - 在 UITableView 中用手指在屏幕上绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15510905/

相关文章:

ios - 跨版本使用 File.applicationStorageDirectory

objective-c - 如何模拟 UITextField 上的 isEditing getter?

ios - 从 AFHTTPSessionManager 获取数据

objective-c - NSBlock操作没有被取消

iOS 8 中的 UITableViewHeaderFooterView

swift - 在没有 Storyboard的情况下使用 UITableView

ios - 在 TextField 图标前填充

ios - 更新字体时更新 webview 页码

objective-c - 如何在 NSPoint 上定义基本的几何运算?

ios - 带有 URL Scheme 的谷歌地图?