我有一个包含多个元素的UI,其中一些我想要封装到自己的对象中。例如,一个对象将是一个计时器(基本上只是一个坐在UIView中的UILabel)和外部可用的成员:
startTime
(财产)start
和pause
(方法)(当计时器达到0时,还有im_done
NSNotification。)此对象和其他几个对象将在单个UIViewController中一起使用。
UIView或UIViewController是否更适合定时器对象(以及所有其他对象)的子类?阅读this answer让我相信UIView,但对于我的具体情况(特别是对于更复杂的对象),我不确定。谢谢你的阅读。
编辑:为了澄清,我希望所有实现计时器功能的代码都与我的主视图控制器分开。一个重要原因是计时器对象是可移植的。
答案 0 :(得分:3)
你应该有一个UIView
的子类,但它应该只有视图组件来显示你需要的任何时间信息。您还应该有一个MyTimer
类,它封装了计时功能,并提供有关更改的回调(例如剩余时间以及可能在剩余时间达到零时单独完成)。理想情况下,回调会传递MyTimer
,并且为方便起见,还有剩余的时间值,因此您不需要在简单的用例中使用访问器方法。)
现在,您已经拥有了一个管理更广泛视图的视图控制器,它可以创建将您的UIView
子类添加到主视图中,并创建,拥有和管理相关的MyTimer
实例那些意见。
答案 1 :(得分:0)
我认为这取决于偏好。您将在父视图控制器中以不同方式包含uiview和uiviewcontroller,如果您不了解容器,这种差异可能会使uiviewcontroller更加困难。我会说最佳实践将在uiviewcontroller中,但它真的取决于你。