Iphone 使用quartz-2d时如何实现触摸

Iphone 使用quartz-2d时如何实现触摸,iphone,cocoa-touch,ios,draw,quartz-2d,Iphone,Cocoa Touch,Ios,Draw,Quartz 2d,我正在用quartz-2d做一个学校项目。我已经实现了如下的用户界面 我的问题是如何在quartz-2d下实现触摸功能?例如,当我触摸菜单中的某个区域时,会绘制另一张图片 谢谢你,不管是不是石英,你还是在画一个视图,你可能还有一个视图控制器,对吧?视图和视图控制器都是UIResponder的子类,因此实现通常的-touchesBegind:withEvent:,-toucheSend:withEvent:,等等。因为可能是您的视图知道UI的各个部分是如何绘制的,因此视图处理触摸、确定触摸了UI

我正在用quartz-2d做一个学校项目。我已经实现了如下的用户界面

我的问题是如何在quartz-2d下实现触摸功能?例如,当我触摸菜单中的某个区域时,会绘制另一张图片


谢谢你,不管是不是石英,你还是在画一个视图,你可能还有一个视图控制器,对吧?视图和视图控制器都是UIResponder的子类,因此实现通常的-touchesBegind:withEvent:,-toucheSend:withEvent:,等等。因为可能是您的视图知道UI的各个部分是如何绘制的,因此视图处理触摸、确定触摸了UI的哪个部分是有意义的,并向视图控制器发送更高级别的消息。

Quartz或否,您仍在绘制视图,并且您可能仍有视图控制器,对吗?视图和视图控制器都是UIResponder的子类,因此实现通常的-touchesBegind:withEvent:,-toucheSend:withEvent:,等等。因为可能是您的视图知道UI的各个部分是如何绘制的,因此视图处理触摸、确定触摸了UI的哪个部分是有意义的,并向视图控制器发送更高级的消息。

谢谢Caleb。我在我的视图中添加-(void)touchsbegind:(NSSet*)touchswithevent:(UIEvent*)event{UITouch*touch=[touchsanyobject];}。但是仍然不知道如何获取触摸事件以及如何控制触摸事件的响应。
-touchesbeated:withEvent:
为您提供一组触摸和一个触摸事件。还有其他几种相关方法:
-touchesMoved…
-touchesend…
。您可以使用这些来处理触摸的方法。我不知道我还能告诉你什么。谢谢你的回复。当我从-touchsbegind获取事件时:withEvent,如何处理UI显示?我需要重新绘制一张菜单图片,如我在原始问题中所示。如何处理仍然处于-(void)drawRect:(CGRect)rect中的重画?视图应该具有一些内部状态,以便跟踪它应该如何显示自己。您可以给它一个
selectedSector
属性,它可以记住视图的哪个部分被触摸过。你的触摸开始了。。。找出哪个部门被触及,并相应地设置属性。如果触摸滑到另一个扇区,-touchesMoved。。。再次设置属性。当触摸结束时,-touchesend。。。清除属性并向视图控制器发送一条消息,让其知道已点击某些内容-drawRect:查看
selectedSector
,了解如何绘制视图。谢谢Caleb。我在我的视图中添加-(void)touchsbegind:(NSSet*)touchswithevent:(UIEvent*)event{UITouch*touch=[touchsanyobject];}。但是仍然不知道如何获取触摸事件以及如何控制触摸事件的响应。
-touchesbeated:withEvent:
为您提供一组触摸和一个触摸事件。还有其他几种相关方法:
-touchesMoved…
-touchesend…
。您可以使用这些来处理触摸的方法。我不知道我还能告诉你什么。谢谢你的回复。当我从-touchsbegind获取事件时:withEvent,如何处理UI显示?我需要重新绘制一张菜单图片,如我在原始问题中所示。如何处理仍然处于-(void)drawRect:(CGRect)rect中的重画?视图应该具有一些内部状态,以便跟踪它应该如何显示自己。您可以给它一个
selectedSector
属性,它可以记住视图的哪个部分被触摸过。你的触摸开始了。。。找出哪个部门被触及,并相应地设置属性。如果触摸滑到另一个扇区,-touchesMoved。。。再次设置属性。当触摸结束时,-touchesend。。。清除属性并向视图控制器发送一条消息,让其知道已点击某些内容-drawRect:查看
selectedSector
,了解如何绘制视图。