iPhone管理可重复使用的UIImages和UIViews

时间:2011-08-02 12:18:24

标签: iphone ios ios4

将UI常量保持在可从所有控制器访问的单独类中的最佳方法是什么?

UIView,UIImage和UIColour所有这些图像和颜色在我的控制器中创建了这么多的分配和释放,其中大多数都是相同的。我不是一次又一次地在不同的类中分配/重新分配相同的图像和视图,而是想要创建它们一次,缓存它们(或类似的东西)并在需要时轻松访问。

我想保持记忆和代码清洁。

2 个答案:

答案 0 :(得分:2)

您可以使用头文件中定义的某些宏,然后可以将其包含在所有相应的实现文件中,如果您希望将它们提供给项目中的每个文件,也可以包含在prefix.pch中。

例如,假设一个名为Config.h

的头文件

对于共享UIColor,您可以添加以下内容...

#define SOME_CONSTANT_COLOR    [UIColor colorWithRed:0.5f green:0.5f blue:0.5f alpha:0.5f]

然后您可以像使用任何其他宏一样访问它...

#import "Config.h" // at the top of you implmentation file, or prefix header

someView.backgroundColor = SOME_CONSTANT_COLOR;

同样也适用于图像..

#define SOME_IMAGE    [UIImage imageNamed:@"someImage.png"]; // In config.h

myImageView.image = SOME_IMAGE; // In implementation file

答案 1 :(得分:2)

是的,可能的

创建一个类似gconstants的类,然后将所有字符串存储在h / m文件

 extern NSString *const APP_TITLE;

 @interface UIColor (APP)
+(UIColor *) APP_NAV_COLOR;
 @end
<。>文件中的

 NSString *const APP_TITLE = @"APP Name";

@implementation UIColor (APP)

+(UIColor *) APP_NAV_COLOR { return [UIColor colorWithRed:00/256.0 green:111/256.0    
 blue:59/256.0 alpha:1.0]; }

@end

并在任何控制器中声明头文件

 self.title = APP_TITLE;