UIViews应该有属性吗?

时间:2012-05-18 18:51:15

标签: ios model-view-controller uiview properties uiviewcontroller

在Objective-C中使用适当的MCV可以使UIView子类具有@propertys?

即。在.h文件中

@class MyViewSubclass;

@interface MyViewSubclass : UIView
@property (strong, nonatomic) UILabel *labelLabel;
@property (strong, nonatomic) UILabel *valueLabel;
@end

还是应该在UIViewController子类中完成?

提前致谢。

4 个答案:

答案 0 :(得分:5)

最常见的是子类UIViewController来管理视图层次结构中的标签,字段,图像和其他视图。但是,如果要创建将在整个应用程序中使用的可重用组件视图,那么完全适合子类UIView并将属性添加到子类中。

来自Apple的iOS应用程序编程指南:

  

查看控制器对象在屏幕上管理应用内容的呈现。视图控制器管理单个视图及其子视图集合。呈现时,视图控制器通过在应用程序窗口中安装它们来显示其视图。

     

UIViewController类是所有视图控制器对象的基类。它提供了加载视图,显示视图,响应设备旋转旋转视图以及其他一些标准系统行为的默认功能。 UIKit和其他框架定义了额外的视图控制器类来实现标准系统接口,例如图像选择器,标签栏界面和导航界面。

http://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/AppArchitecture/AppArchitecture.html#//apple_ref/doc/uid/TP40007072-CH3-SW1

答案 1 :(得分:3)

视图具有属性,但不要将模型逻辑混合到视图中。视图中的属性应描述属性的外观,而不是属性的含义。我会避免在视图中使用名为valueLabel的属性。

视图属性名称的示例是UITableViewCell。它具有属性imageView,textLabel和detailTextLabel。

答案 2 :(得分:1)

UIView子类具有属性是完全合理的。例如,您可能需要它们来实现layoutSubviews

答案 3 :(得分:1)

这是完全合理的,如果你想创建一个允许交互和更好的灵活性的可重用组件,看看UIControl(它是UIView的子类)