Iphone - 绘制视图:哲学和互动

Oli*_*ver 1 iphone graphics uiviewcontroller uiview

我已经明白我需要子类化UIView才能在其中绘制.
我还不明白的是,我必须做的方式的哲学......

假设我有一个视图控制器,根据上下文,我可能想要在其管理的子视图或圆形,矩形或处理过的图形中绘制一条线.或者让我们说两个点在视图内移动到一个定义的矩形中,当它们接近时显示更大的点.

我如何子类化和定义子视图,使其能够只在其drawRect方法中执行此操作?

控制器如何管理超过这个简单的UIView(让我们假设你有一个视图控制器管理一个视图,里面有很多其他视图,你想在其中两个中制作一些图纸),那就知道什么是需要被绘制到正确的视图(它是一个控制器,不是吗?),可能与视图交互?绘图完成后,视图如何与控制器交互?

我已经阅读了许多关于绘图的文档(苹果,网络,论坛,教程......),但我仍然无法触及必须完成的哲学.

Fat*_*tie 5

这很简单.创建一个新类OliverView,这是一个UIView.(也就是说,它是UIView的一个子类.)在那个视图中,让它以一种奇特的方式在里面绘制东西drawRect.

现在创建一个名为OliverVC的UIViewController.在故事板中将OliverView放在OliverVC中.(初学者解释如何做到这一点).

在OliverView中,具有属性"小时","分钟","秒".

现在,在OliverView中 - 在drawRect中 - 有一种显示这些值的奇特方式.(饼图,发光字母,动画 - 无论你想要什么.)

现在,在OliverVC中,做一些计算来确定津巴布韦的时间.

一旦你想要显示时间,只需在OliverView中设置这些属性 - - 你就完成了.

您的同事可能正在编写OliverView.你不需要知道她将如何显示时间.相反,您的同事需要对您在OliverVC中的计算一无所知.

所以,它很简单L一部分有显示数据的工作.一部分的工作是提出数据(在应用程序中执行任何类型的计算).

它是"实时"屏幕设备中唯一可能的架构,其中视图可以随时更改.


回答下面的问题:如果你有一个完全独立的按钮,你就会忘记这一点.(也许坐在"OliverView"之上.)所以,这很容易!