要为计时器对象使用UIView或UIViewController?

时间:2015-04-11 19:56:44

标签: ios uiview uiviewcontroller

我有一个包含多个元素的UI,其中一些我想要封装到自己的对象中。例如,一个对象将是一个计时器(基本上只是一个坐在UIView中的UILabel)和外部可用的成员:

  • startTime(财产)
  • startpause(方法)

(当计时器达到0时,还有im_done NSNotification。)此对象和其他几个对象将在单个UIViewController中一起使用。

UIView或UIViewController是否更适合定时器对象(以及所有其他对象)的子类?阅读this answer让我相信UIView,但对于我的具体情况(特别是对于更复杂的对象),我不确定。谢谢你的阅读。

编辑:为了澄清,我希望所有实现计时器功能的代码都与我的主视图控制器分开。一个重要原因是计时器对象是可移植的。

2 个答案:

答案 0 :(得分:3)

你应该有一个UIView的子类,但它应该只有视图组件来显示你需要的任何时间信息。您还应该有一个MyTimer类,它封装了计时功能,并提供有关更改的回调(例如剩余时间以及可能在剩余时间达到零时单独完成)。理想情况下,回调会传递MyTimer,并且为方便起见,还有剩余的时间值,因此您不需要在简单的用例中使用访问器方法。)

现在,您已经拥有了一个管理更广泛视图的视图控制器,它可以创建将您的UIView子类添加到主视图中,并创建,拥有和管理相关的MyTimer实例那些意见。

答案 1 :(得分:0)

我认为这取决于偏好。您将在父视图控制器中以不同方式包含uiview和uiviewcontroller,如果您不了解容器,这种差异可能会使uiviewcontroller更加困难。我会说最佳实践将在uiviewcontroller中,但它真的取决于你。