UIScrollView,模态窗口,内容移动

时间:2013-07-08 01:09:57

标签: ios uiscrollview

我有一个UIScrollview,内容是iphone屏幕尺寸的两倍(肖像)。 它有两个图像视图。用户可以滚动到另一个。 现在,在点击inageviews时,我会以模态方式呈现另一个ViewController,并以更多细节显示该图像。

问题在于当用户解散该模态VC并返回到具有两个图像的原始VC时,两个图像在x轴上的滚动视图内容中移动160个点,因此第一个图像具有原点(0,0),第二个在(320,0),在解除模态VC后,它们分别切换到(-160,0)和(160,0)。

我对此进行了研究,发现我必须处理

  - (void)viewWillAppear:(BOOL)animated {
       [super viewWillAppear:animated];
      //here I try to manipulagte and foce another origin point, but it just doesn't 
     update
  } 

其他人找到了这样的解决方案

  [self.scrollView setContentOffset:CGPointZero];

但即使用户点击了第二张图片,这也会强制滚动回到第一张图片!!

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我不完全确定为什么当你解雇模态VC时你的scrollView会自动转移到位置,但我会说你最好的选择是手动改变内容偏移(如答案中所示)。您需要调整的是,当您点击其中一个图像时,在父VC中的属性中保留对该视图的引用(可能是ImageView)。当您调用setContentOffset时,请执行此操作(假设您已将视图存储到名为selectedView的属性中)

self.scrollView.contentOffset = CGPointMake(self.selectedView.frame.origin.x, self.selectedView.frame.origin.y)

应将其调整到正确的位置(如果需要,可以在值上加一点或稍微减去一点)