Вам необходимо определить структуру для хранения данных, необходимых для создания вашего UIView
.
@interface MyViewDataHolder :NSObject
{
CGRect mViewRect;
UIColor* mDarkGrayColor;
NSInterger mTag;
}
@end
Затем создайте объект вышеупомянутого класса И присвойте значения в элементе, затем добавьте это в ваш NSArray
...
РЕДАКТИРОВАНИЕ:
В классе MyViewDataHolder.h
@interface MyViewDataHolder :NSObject
{
CGRect mViewRect;
UIColor* mDarkGrayColor;
NSInteger mTag;
}
@property (nonatomic,assign) CGRect mViewRect;
@property (nonatomic,retain) UIColor* mDarkGrayColor;
@property (nonatomic,assign) NSInteger mTag;
@end
В классе MyViewDataHolder.mm
#import "MyViewDataHolder.h"
@implementation MyViewDataHolder
@synthesize mViewRect,mDarkGrayColor,mTag;
-(void) dealloc
{
[mDarkGrayColor release]
mDarkGrayColor = nil;
}
Теперь, как его использовать ....
Создание объектов MyViewDataHolder
, как показано ниже ...
MyViewDataHolder* myObj1 = [[MyViewDataHolder alloc] init];
myObj1.mViewRect = CGRectMake(x,y,width,height);
myObj1.tag = 1;
myObj1.mDarkGrayColor = [UIColor redColor];
Создайте столько, сколько вам нужно
Затем создайте NSMutableArray
и добавьте каждый объект MyViewDataHolder
в NSMutableArray
.
NSMutableArray* myArray = [[NSMutableArray alloc] init];
[myArray addObject:myObj1];
[myArray addObject:myObj2];
[myArray addObject:myObj3];
and So on ....
Когда вам нужна сохраненная информация, вы можете использовать, как показано ниже ...
for(int index =0; index < [myArray count]; index++)
{
MyViewDataHolder* myObj = (MyViewDataHolder*)[myArray objectAtIndex:index];
myView = [[UIView alloc] initWithFrame:myObj.mViewRect];
//incriment x and y to refelect where you want your next view to be suituated
myView.tag = myObj.mTag;
myView.backgroundColor = myObj.mDarkGrayColor;
[self.view addSubview:myView];
[myView release];
}
Код отражает подход, хотя я не компилировал код, так что используйте его как ссылку
Спасибо,