【发布时间】:2012-07-06 17:20:18
【问题描述】:
这可能是一个简单的问题,但我是新手,所以我在画一个空白。
我有一个 2D 图形应用程序,其图形(在 drawRect 中实现)取决于日期。当日期改变时,图形改变,所以我想我需要调用
[myView setNeedsDisplay: YES];
日期更改时。我看过计时器的代码,但这似乎不是计时器类型的场景。我将如何检查本地日期是否已更改,以及将该代码放入哪个类?我认为它会放在 .m 文件中作为我的主视图。
除了在日期更改时自动触发之外,最终,应用程序还需要在用户输入时触发(可能是某一天前进或后退的按钮或日期选择器选择时)。
图形渲染得很好,但我没有编写任何日期触发器,因此虽然 drawRect 代码是特定于日期的,但它不会在日期更改时更改。
附:上面我的基本问题已经得到解答,但是现在我去实现它,我意识到我还有另一个问题。我应该在某处有一个属性来跟踪当前显示其配置的日期。显而易见的想法是向持有 NSDate 对象的主视图添加一个属性。但是按照我编写代码的方式,计算是通过子视图类中的方法完成的。那么问题来了,如何从子视图更新主视图的 NSDate 属性。另一种方法是将 NSDate 属性添加到子视图,但是有多个这样的子视图,这似乎是多余的。对此有何看法?
【问题讨论】:
-
我什么都没试过。在尝试某事之前,我需要先有一个想法,出于某种原因,我正在画一个空白。我将研究 NSDate 和相关项目。谢谢。
-
另外,您应该更具体地了解您想要什么样的日期更改 - 日、年、月、分、秒? NSDate 将注册所有这些更改,您可以自行隔离所需的更改。
-
Dustin,如果日期变化的类型不同,真的会改变答案吗?无论如何,没有更多细节,日期只是一天的名称。日期每天都在变化。我希望参与的活动是日常活动。不过,一般来说,它不需要。默认情况可能会在当地时间午夜触发,但同样不必如此。例如,对于测试,我可能会使用分钟触发器。
标签: objective-c date graphics drawrect setneedsdisplay