【发布时间】:2011-12-14 23:37:08
【问题描述】:
所以我有一个 UIImageView 可以通过 touchesMoved 围绕其中心旋转。
目前所有代码都在我的 ViewController 中,检测触摸、计算和跟踪当前旋转、图像本身以及图像的实际旋转。
但现在我想整理一下并正确执行。我创建的这个“微调器”应该是一个不同的对象,可以多次实例化并放在我需要的任何地方。
所以我创建了新的 Spinner 类,它会跟踪自己的图像和角度属性...
但这应该是具有 UIImageView 属性的 NSObject,还是实际的 UIImageView 本身? 以及应该如何处理触摸,ViewController 是否需要发挥作用或者对象可以以某种方式跟踪自己的触摸?
-
已编辑:仍然希望对我的这个老问题有一个明确的答案。
当我的微调器只是一个旋转并响应触摸的抽象图像时,我认为 UIControl 子类是有意义的。
但是当位置、速度更复杂时,需要与其他对象交互,在多次启动中持续存在(NSManagedObject 子类?)等。触摸和图像只是整体的一小部分。这就是为什么我认为 UIImage 只是对象的另一个属性。
作为一个简单的例子,想象一堆球在一个盒子里弹跳。它们需要从侧面反弹、相互反弹、旋转、对重力做出反应、在触摸时做出反应 - 并在两次发射之间持续存在。
那么从概念上讲,这应该如何在 OOP 中构建?
【问题讨论】:
-
听起来 UIControl 将是最合适的父类,但您需要详细说明您希望它如何使用(由程序员和最终用户)以及图像来自哪里如果您需要合理的建议。
-
微调器是我的“模型”的一部分,不是吗? MVC 不是意味着我的模型不应该是 UIView 子类吗?
标签: objective-c ios oop object