使用XCode 4.3.2,如果添加一个新类TestView
(添加了TestView.h
和.m
),并且它是 UIView
的子类,它在 drawRect
方法中绘制内容。为什么点击了ViewController.xib
这个文件,还要点击Identity Inspector,并且要把Custom Class从UIView
改为测试 View
?
这样做意味着什么?如果不改变呢——TestView.m
中的drawRect
中的代码仍然可以轻松调用吗?或者,可以将TestView.m
中的所有代码移至ViewController.m
吗?如果是这样,如何才能做到这一点,因为 TestView
继承自 UIView
,但 ViewController
继承自 UIViewController
和 ViewController
的 drawRect
可能不会被调用。
最佳答案
进行自定义绘图的常见方法是实现 UIView 子类并实现drawRect。使该绘图可见的唯一方法是将自定义 View 添加到由 View Controller 控制但不由 View Controller 绘制的 View 层次结构中。
xib 描述了用户界面。在 xib 中添加 UIView 子类(如 TestView)会导致该类的实例被分配并附加到 View 层次结构。需要类名才能知道要实例化哪个类(创建实例)。
drawRect 是一个 UIView 方法,当系统决定需要绘制部分或全部 View 时,系统会调用该方法。应用程序不直接调用它。他们实现它并让系统调用它。
ViewController 不绘制任何内容,它们只管理 View 的层次结构。所以在 View Controller 中实现drawRect是没有意义的。
关于ios - 对于 iOS,将 ViewController.xib 自定义类更改为另一个类意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10220855/