使类在obj-C中一起工作

时间:2010-05-19 17:08:42

标签: objective-c cocoa-touch

我正在为iPhone编写一个程序,首先让用户拍照,然后动态检索用户点击图像的地方的颜色,并绘制一个该颜色的矩形。我有两个相关的课程:AppViewControllerAppView。前者包含所有UI元素和IBActions,后者包含最后一次点击的位置,触摸处理方法和drawRect(以及在图像的给定坐标处获取颜色数据的静态方法)。

我想要做的是将触摸处理(在drawRect / touchesMoved中调用Ended)和drawRect中调用AppViewController。这不起作用,因为该类不是从UIView继承,而是从UIViewController继承。这样做的正确方法是什么?

另一种表达方式:在不支持触摸检测方法的类中,如何不断地改变某些东西(好吧,只要用户在屏幕上滑动)?

(这可能不能解释清楚。请提出澄清问题)。

2 个答案:

答案 0 :(得分:0)

没有一种正确的方法可以将视图的行为移动到视图控制器中,因为这不是类的使用方式。您应该看看是什么驱使您尝试以这种方式破坏框架的设计,因为这可能更容易修复。

但是,这种情况并不常见,因此可以向支持小组寻求帮助。您当然可以在视图控制器中使用您的视图drawRect:调用方法,但我会过于谨慎地混淆他们的关注点,因为很难找出谁对什么负责。

答案 1 :(得分:0)

我认为在这种情况下delegate pattern可能会对您有所帮助。你可以在touchesMoved / Ended中调用你的委托的shouldUpdateRectangle选择器。