ios - Several Questions about ScrollView with PageControl -


i pretty new ios development , stumbled upon several issues couldn't find answers yet:

general setup: i'm using scrollview pagecontrol inside tabbarapplication

  1. is possible have pagecontrol within same area content of pages? me gets hidden srollview's views, due display space being rare need on same height actual content.

  2. i've fooled around in sandbox-project , whenever first started implement button view of scrollview-page pages of scrollview wouldn't show anymore, after first scroll attempt. i'd post code autogenerated ib.

  3. this general question possibilities again: main design of project should tabbarapplication navigationcontroller letting go deeper sub-menues pretty common. in 1 of tabs there should pagecontrol, in can again go sub-menues pushing views on navigationcontroller stack . possible?

some code 2.

- (void)viewwillappear:(bool)animated { [super viewwillappear:animated];  nsmutablearray *controllers = [[nsmutablearray alloc] init]; (unsigned = 0; < knumberofpages; i++) {     [controllers addobject:[nsnull null]]; // [taskpageviewcontroller new]]; } self.viewcontrollers = controllers; [controllers release];  // page width of scroll view scrollview.pagingenabled = yes; scrollview.contentsize = cgsizemake(scrollview.frame.size.width * knumberofpages, scrollview.frame.size.height); scrollview.showshorizontalscrollindicator = no; scrollview.showsverticalscrollindicator = no; scrollview.scrollstotop = no; scrollview.delegate = self;  pagecontrol.numberofpages = knumberofpages; pagecontrol.currentpage = 0;  } - (ibaction)changepage:(id)sender { int page = pagecontrol.currentpage; // 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]; // update scroll view appropriate page cgrect frame = scrollview.frame; frame.origin.x = frame.size.width * page; frame.origin.y = 0; [scrollview scrollrecttovisible:frame animated:yes]; // set boolean used when scrolls originate uipagecontrol. see scrollviewdidscroll: above. pagecontrolused = yes;  }  - (void)loadscrollviewwithpage:(int)page { if (page < 0) return; if (page >= knumberofpages) return;  // replace placeholder if necessary taskpageviewcontroller *controller = [viewcontrollers objectatindex:page]; if ((nsnull *)controller == [nsnull null]) {     controller = [[taskpageviewcontroller alloc] init]; //withpagenumber:page];     [viewcontrollers replaceobjectatindex:page withobject:controller];     [controller release]; }  // add controller's view scroll view if (nil == controller.view.superview) {     cgrect frame = scrollview.frame;     frame.origin.x = frame.size.width * page;     frame.origin.y = 0;     controller.view.frame = frame;     [scrollview addsubview:controller.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. if (pagecontrolused) {     // nothing - scroll initiated page control, not user dragging     return; } // switch indicator when more 50% of previous/next page visible cgfloat pagewidth = scrollview.frame.size.width; int page = floor((scrollview.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 } 

  1. you can have 2 view hierarchies this:

    • have page control inside scrollview origin fixed @ contentoffset property
    • have page control in superview of scrollview, @ higher index (i.e. floating above it)
  2. this depends on put code of adding subviews. in delegate method of scrollview? viewdidload? somewhere else? code might help.

  3. not sure why you'd need have page control when it's drill-down navigation. pages navigating same level items.


Comments

Popular posts from this blog

django - How can I change user group without delete record -

java - Need to add SOAP security token -

java - EclipseLink JPA Object is not a known entity type -