1

使用正确的 MCV 和 Objective-C 可以 UIView 子类有@propertys吗?

即在.h文件中

@class MyViewSubclass;

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

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

提前致谢。

4

4 回答 4

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

于 2012-05-18T19:14:58.103 回答
3

视图具有属性是好的,但不要将模型逻辑混入视图中。视图中的属性应该描述属性的外观,而不是属性包含的内容。我会避免在视图中有一个名为 valueLabel 的属性。

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

于 2012-05-18T19:08:33.223 回答
1

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

于 2012-05-18T18:57:31.650 回答
1

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

于 2012-05-18T19:20:33.777 回答