在Objective-C中使用适当的MCV可以使UIView子类具有@propertys?
即。在.h文件中
@class MyViewSubclass;
@interface MyViewSubclass : UIView
@property (strong, nonatomic) UILabel *labelLabel;
@property (strong, nonatomic) UILabel *valueLabel;
@end
还是应该在UIViewController子类中完成?
提前致谢。
答案 0 :(得分:5)
最常见的是子类UIViewController来管理视图层次结构中的标签,字段,图像和其他视图。但是,如果要创建将在整个应用程序中使用的可重用组件视图,那么完全适合子类UIView并将属性添加到子类中。
来自Apple的iOS应用程序编程指南:
查看控制器对象在屏幕上管理应用内容的呈现。视图控制器管理单个视图及其子视图集合。呈现时,视图控制器通过在应用程序窗口中安装它们来显示其视图。
UIViewController类是所有视图控制器对象的基类。它提供了加载视图,显示视图,响应设备旋转旋转视图以及其他一些标准系统行为的默认功能。 UIKit和其他框架定义了额外的视图控制器类来实现标准系统接口,例如图像选择器,标签栏界面和导航界面。
答案 1 :(得分:3)
视图具有属性,但不要将模型逻辑混合到视图中。视图中的属性应描述属性的外观,而不是属性的含义。我会避免在视图中使用名为valueLabel的属性。
视图属性名称的示例是UITableViewCell。它具有属性imageView,textLabel和detailTextLabel。
答案 2 :(得分:1)
UIView
子类具有属性是完全合理的。例如,您可能需要它们来实现layoutSubviews
。
答案 3 :(得分:1)
这是完全合理的,如果你想创建一个允许交互和更好的灵活性的可重用组件,看看UIControl(它是UIView的子类)