ios - UIImageView is cut off on right side within PageControl after zooming -


my image cut off on right side after zooming in. if don't set offset cgrect make, not cut off, want image centered on screen. how can have image centered , not cut off right portion after zooming?

- (void)viewdidload { [super viewdidload]; // additional setup after loading view, typically nib.  self.view.backgroundcolor = [uicolor graycolor];  uiscrollview *mainscrollview = [[uiscrollview alloc] initwithframe:self.view.bounds]; mainscrollview.pagingenabled = yes; mainscrollview.showshorizontalscrollindicator = no; mainscrollview.showsverticalscrollindicator = no;  cgrect innerscrollframe = mainscrollview.bounds;  (nsinteger = 0; < 2; i++) {     uiimageview *imageforzooming = [[uiimageview alloc] initwithimage:[uiimage imagenamed:[nsstring stringwithformat:@"page%d", + 1]]];     imageforzooming.tag = view_for_zoom_tag;     imageforzooming.frame = cgrectmake(50, 0, imageforzooming.bounds.size.width, imageforzooming.bounds.size.height);      uiscrollview *pagescrollview = [[uiscrollview alloc] initwithframe:innerscrollframe];     pagescrollview.minimumzoomscale = 0.5f;     pagescrollview.maximumzoomscale = 1.0f;     pagescrollview.contentsize = imageforzooming.bounds.size;     pagescrollview.delegate = self;     [pagescrollview addsubview:imageforzooming];      [mainscrollview addsubview:pagescrollview];      if (i < 1) {         innerscrollframe.origin.x += innerscrollframe.size.width;     }      pagescrollview.zoomscale = 0.5f; }  mainscrollview.contentsize = cgsizemake(innerscrollframe.origin.x + innerscrollframe.size.width, mainscrollview.bounds.size.height);  [self.view addsubview:mainscrollview]; }  - (uiview *)viewforzoominginscrollview:(uiscrollview *)scrollview { return [scrollview viewwithtag:view_for_zoom_tag]; } 

edit: here view hierarchy

  • view
    • mainscrollview
      • innerscrollframe
        • pagescrollview
          • imageforzooming
      • innerscrollframe
        • pagescrollview
          • imageforzooming

for else having same problem in future, did add following uiscrollviewdelegate protocol:

- (void)scrollviewdidzoom:(uiscrollview *)scrollview {     uiview *subview = [scrollview.subviews objectatindex:0];     cgfloat offsetx = (scrollview.bounds.size.width > scrollview.contentsize.width) ? (scrollview.bounds.size.width - scrollview.contentsize.width) * 0.5 : 0.0;     cgfloat offsety = (scrollview.bounds.size.height > scrollview.contentsize.height) ? (scrollview.bounds.size.height - scrollview.contentsize.height) * 0.5 : 0.0;     subview.center = cgpointmake(scrollview.contentsize.width * 0.5 + offsetx,          scrollview.contentsize.height * 0.5 + offsety); } 

i found answer here: center content of uiscrollview when smaller

so image centered after zooming instead of applying offset applied. worked charm. when zoom, none of image cut off on either page control, , can center image @ beginning of view.


Comments

Popular posts from this blog

linux - xterm copying to CLIPBOARD using copy-selection causes automatic updating of CLIPBOARD upon mouse selection -

c++ - qgraphicsview horizontal scrolling always has a vertical delta -