0

I am following this excellent small tutorial about drawing on screen in the layer of a UIView (subclass). http://spritebandits.wordpress.com/ It just works.

There is just one thing. I placed this view as subview of a UITableViewCell which, naturally, is displayed as part of a UITableView. I guess I would have the same issue when I would place it within an UIScrollView. (UITableView inherits from UIScrollView anyway)

Touches are triggered by my painting view as long as their related movement is horizontal. As soon as I move the finger kinda vertical, even partly, then the UITableView takes over and scrolls the table.

Is there any proper way of stopping the Table to taike control of the touches while the touch is actually within my view?

If it is of importance: I am using storyboard. The cell is a prototype cell with its own subclass of UITableViewCell.

4

2 回答 2

1

我已经使用您所说的同一类“Canvas”以及在 UITableViewCell 中实现了这一点。但是我并没有使用整个单元格进行绘图,只是 UITableView 内部的一个 UIView 作为子视图。

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

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

希望这会有所帮助。

于 2013-03-19T22:14:09.953 回答
0

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

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

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

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

于 2013-03-19T21:46:40.553 回答