由于UICatalog工程比较大,所以我分几篇来描述。
如果有关代码前面已经分析过,这里就不再重复了。
4.ControlsViewController类
这个类的.h文件没有什么特殊的。
在.m文件中,注意下面的定义:
#define kSliderHeight7.0
#define kProgressIndicatorSize40.0
#define kUIProgressBarWidth160.0
#define kUIProgressBarHeight24.0
#define kViewTag1
这样的定义是必须,在编程规范中,原则上是不允许硬编码的,所有的常量都应该是使用宏定义的方式。如果是多个文件中都使用的常量,应该使用一个专门的头文件定义,如果只是在一个类中使用,就定义在这个类的.m文件中。
@interface ControlsViewController (forwardDeclarations)
- (void)tintAction:(id)sender;
@end
这里使用catalog技术对类进行扩展,这里不对catalog技术进行讲述,如果有可能,我会专门写一个Objective-C的教程。值得一提的是,上面的方式看似定义了类的一个私有的函数,其实不然,由于Objective-C的运行期特性,这个语言的类是没有私有函数的概念的。如果在外面调用这个函数,编译期会给出一个警告,但是在运行的时候,程序不会crash。
4.1函数viewDidLoad
if ([UIStepperclass])
{
[self.dataSourceArrayaddObject:[NSDictionarydictionaryWithObjectsAndKeys:
@"UIStepper",kSectionTitleKey,
@"Stepper 1 to 10",k