iphone - scrollView with pagecontrol programmatically? -
i want create scrollview pagecontrol programmatically. how can that?
#pragma mark - #pragma mark loadgalleryview -(void) loadgalleryview{ galleryarr = [memberdic objectforkey:@"arrkey"]; if ([galleryarr count]%5 != 0) { noofpages = ([galleryarr count]/5)+1; } else { noofpages = [galleryarr count]/5; } viewcontrollers = [[nsmutablearray alloc] init]; (int i=0; i<noofpages; i++) { [viewcontrollers addobject:[nsnull null]]; } [galleryscrollview setpagingenabled:true]; [galleryscrollview setcontentsize:cgsizemake(self.view.frame.size.width* noofpages,69.0f)]; [galleryscrollview setshowshorizontalscrollindicator:false]; [galleryscrollview setshowsverticalscrollindicator:false]; [galleryscrollview setscrollstotop:false]; [galleryscrollview setdelegate:self]; [pagecontrol setnumberofpages:noofpages]; [pagecontrol setcurrentpage:0]; [self loadscrollviewwithpage:0]; [self loadscrollviewwithpage:1]; } //-----------------load scroll view---------------------------------- -(void) loadscrollviewwithpage:(int) page{ if (page < 0) { return; } if (page >= noofpages) { return; } galleryviewcontroller *givc = [viewcontrollers objectatindex:page]; if ((nsnull *)givc == [nsnull null]) { givc = [[galleryviewcontroller alloc] initwithpagenumber:page]; givc.imagearr = [galleryarr retain]; [viewcontrollers replaceobjectatindex:page withobject:givc]; [givc release]; } if (nil == givc.view.superview) { cgrect frame = self.view.frame; frame.origin.x = frame.size.width * page; frame.origin.y = 0.0f; givc.view.frame = frame; [galleryscrollview addsubview:givc.view]; } } - (void)scrollviewdidscroll:(uiscrollview *)sender { // don't want "feedback loop" between uipagecontrol , scroll delegate in // scroll event generated user hitting page control triggers updates // delegate method. use boolean disable delegate logic when page control used. // switch indicator when more 50% of previous/next page visible cgfloat pagewidth = galleryscrollview.frame.size.width; int page = floor((galleryscrollview.contentoffset.x - pagewidth / 2) / pagewidth) + 1; pagecontrol.currentpage = page; // load visible page , page on either side of (to avoid flashes when user starts scrolling) [self loadscrollviewwithpage:page - 1]; [self loadscrollviewwithpage:page]; [self loadscrollviewwithpage:page + 1]; // possible optimization unload views+controllers no longer visible } - (void)scrollviewdidenddecelerating:(uiscrollview *)scrollview { ispagecontrolused = no; } in gallary view controller in .m file - (void)viewdidload { [super viewdidload]; float x = 7.0f; (int = (pagenumber*5); i<(pagenumber+1)*5; i++) { if (i<[imagearr count]) { nsstring *url = [imagearr objectatindex:i]; myimageview *imgview = [[myimageview alloc] initwithframe:cgrectmake(x, 7.5f, 55.0f, 55.0f)]; [imgview addimagefrom:url]; [self.view addsubview:imgview]; [imgview release]; x = x+62.5f; } } } -(id)initwithpagenumber:(int) page{ if (self = [super initwithnibname:@"galleryviewcontroller" bundle:nil]) { pagenumber = page; } return self; }
Comments
Post a Comment