我正在为iPhone编写一个程序,首先让用户拍照,然后动态检索用户点击图像的地方的颜色,并绘制一个该颜色的矩形。我有两个相关的课程:AppViewController
和AppView
。前者包含所有UI元素和IBActions,后者包含最后一次点击的位置,触摸处理方法和drawRect
(以及在图像的给定坐标处获取颜色数据的静态方法)。
我想要做的是将触摸处理(在drawRect
/ touchesMoved
中调用Ended
)和drawRect
中调用AppViewController
。这不起作用,因为该类不是从UIView
继承,而是从UIViewController
继承。这样做的正确方法是什么?
另一种表达方式:在不支持触摸检测方法的类中,如何不断地改变某些东西(好吧,只要用户在屏幕上滑动)?
(这可能不能解释清楚。请提出澄清问题)。
答案 0 :(得分:0)
没有一种正确的方法可以将视图的行为移动到视图控制器中,因为这不是类的使用方式。您应该看看是什么驱使您尝试以这种方式破坏框架的设计,因为这可能更容易修复。
但是,这种情况并不常见,因此可以向支持小组寻求帮助。您当然可以在视图控制器中使用您的视图drawRect:
调用方法,但我会过于谨慎地混淆他们的关注点,因为很难找出谁对什么负责。
答案 1 :(得分:0)
我认为在这种情况下delegate pattern可能会对您有所帮助。你可以在touchesMoved / Ended中调用你的委托的shouldUpdateRectangle选择器。