用手指在UITableView中绘制屏幕

时间:2013-03-19 21:35:27

标签: ios objective-c uitableview touches

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

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

触摸由我的绘画视图触发,只要它们的相关移动是水平的。一旦我将手指垂直移动,甚至部分移动,那么UITableView就会接管并滚动表格。

当触摸实际上在我的视野中时,是否有任何正确的方法可以阻止桌子控制触摸?

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

2 个答案:

答案 0 :(得分:1)

我使用你所说的相同类“Canvas”以及UITableViewCell内部实现了这个。但是我没有使用整个单元格进行绘制,只有UITableView内部的UIView作为子视图。

当UIView(我允许绘图的单元格的子视图)触发touchesBegan或touchesEnded时,我通过激活和停用UITableView滚动来达到整个用户体验。所以当他们触摸/移动UIView时,他们正在画画。当它在外面时,它们会滚动。所以他们不能在UIView上滚动,因为他们会画画。

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

希望这会有所帮助。

答案 1 :(得分:0)

我没有答案。但基本上有一个解决方法。

您可以让用户进入绘图模式,其中禁用UItableviewcell的滚动,然后

用户完成绘图后,您可以再次启用滚动。

在屏幕上的任何位置包含按钮可帮助您切换模式。