如何创建一个类以将与运动相关的效果应用于视图?

时间:2012-09-20 01:42:30

标签: iphone xcode subclassing motion cmmotionmanager

这里有相对新人,抱歉有点新手问题。我试着寻找答案。

我编写了一种方法,根据用户持有iPhone的角度,在视图控制器上将视觉动画效果应用于UIImageView。基本上我使用CMMotionManager提供角度,然后使用该角度通过更改其bounds.center来移动UIImageView。当一切都被卡在视图控制器中时工作得很好但我希望它更清洁和可重复使用。

所以我将UIImageView子类化,添加了一个运动管理器,一个运动管理器块处理程序和操作队列,还有一些方法将设备角度映射到与UIImageView中的移位相对应的数字。我创建了一个自定义的init方法,它接受各种参数来控制视觉效果。然后就像将这个类的实例作为子视图(addSubview :)添加到我的控制器视图一样简单。它甚至使用后台线程和自动释放池。光滑,我想。

虽然它似乎在视觉上有效,但由于一系列原因(包括仪器显示不断增加的内存消耗),我认为这不是我应该干扰UIImageView的子类。有没有更好的方法来构建这个?例如,与UIViewController不同,UIImageView的子类没有viewDidLoad / viewDidUnload / ...出现/ etc。这将让我开始和停止运动经理更新;我应该能够为整个应用程序创建一个运动管理器,而不是在我的图像效果类中实例化它。

我确实知道每个应用程序必须只有一次CMMotionManager实例,并且已经实现了Jonathan's方法,但后来我发现自己需要从我漂亮的类中访问appDelegate,当它更容易从视图控制器,它从那里向下螺旋。

我要求的太多,或者只是不理解一个非常简单的概念?

0 个答案:

没有答案