0

我有一个 UIScrollView 显示一些图形数据,它在屏幕顶部有 ax 轴。目前,当您向下滚动时,x 轴会消失,因为它只是 UIScrollView 的子视图,但我希望它始终固定在屏幕顶部,以便用户可以看到 x 轴值。

通常我只是把这个轴放在滚动视图的顶部,这样它就不会滚动,但是每当水平滚动发生时,我仍然需要它与 UIScrollView 一起滚动,因为 x 轴不完全适合视图。

我不知道该怎么做。我想了几种方法。

  1. 我可以从 ScrollView 中删除 x 轴,然后将其放入自己的 UIView 中,然后使用滚动视图委托方法在水平滚动之后和期间将 x 轴与滚动视图的新位置同步。
  2. 我可以以某种方式复制水平滚动事件并将它们传递给 x 轴视图(在这种情况下将是另一个 UIScrollView)。

我犹豫要不要尝试第一,因为我认为动画会很生涩,或者至少与滚动视图的水平滚动不同步,我希望它们完全同步。

我犹豫要不要尝试第二个,因为我不确定这是否可行。

我正在寻找有关如何解决此问题的建议(最好是从以前做过类似事情的人那里)。

提前致谢!

4

1 回答 1

0

I believe that your second approach will work. Make your view controller a UIScrollViewDelegate for the 2-way scrolling view and use scrollViewDidScroll: to synchronize the positioning by adjusting the scrolling header.

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    CGPoint offset = [scrollView contentOffset];
    CGPoint headOffset = CGPointMake(offset.x, 0.0f);
    [self.headScroller setContentOffset:headOffset animated:NO];
}

This assumes that the 'headScroller' has user interaction turned off and has no delegate. It only scrolls under program control.

于 2012-03-27T20:20:16.157 回答