0

我有一个 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];

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

有任何想法吗?

4

1 回答 1

0

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

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

那应该将其调整到正确的位置(如果需要,您可以对值添加或减去一点以将其偏移一点)

于 2013-07-08T02:19:18.690 回答