iphone - Creating views on the fly from array -
i need create a bunch views on fly. wondering best way go doing ill need define coordinates, tag, colours of each view.
would need create multidimensional array , if how can this?
cgrect viewrect1 = { 80.0, 200.0, 160.0, 100.0 }; uiview *myview1 = [[uiview alloc] initwithframe:viewrect1]; [myview1 setbackgroundcolor:[uicolor darkgraycolor]];
you need define structure hold data needed create uiview.
@interface myviewdataholder :nsobject { cgrect mviewrect; uicolor* mdarkgraycolor; nsinterger mtag; } @end then create object of above class , assign values in member add in nsarray...
edited:
in myviewdataholder.h class
@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 in myviewdataholder.mm class
#import "myviewdataholder.h" @implementation myviewdataholder @synthesize mviewrect,mdarkgraycolor,mtag; -(void) dealloc { [mdarkgraycolor release] mdarkgraycolor = nil; } now how use ....
create objects of myviewdataholder below ...
myviewdataholder* myobj1 = [[myviewdataholder alloc] init]; myobj1.mviewrect = cgrectmake(x,y,width,height); myobj1.tag = 1; myobj1.mdarkgraycolor = [uicolor redcolor]; create as need
then create nsmutablearray , add each objects of myviewdataholder nsmutablearray.
nsmutablearray* myarray = [[nsmutablearray alloc] init]; [myarray addobject:myobj1]; [myarray addobject:myobj2]; [myarray addobject:myobj3]; , on .... when need stored info use below ...
for(int index =0; index < [myarray count]; index++) { myviewdataholder* myobj = (myviewdataholder*)[myarray objectatindex:index]; myview = [[uiview alloc] initwithframe:myobj.mviewrect]; //incriment x , y refelect want next view suituated myview.tag = myobj.mtag; myview.backgroundcolor = myobj.mdarkgraycolor; [self.view addsubview:myview]; [myview release]; } the code reflect approach , although didn't compile code use reference
thanks ,
Comments
Post a Comment