5

我有两个 UIScrollViews,一个水平的,一个垂直的,每个两个页面(如,水平的一个是两页宽,垂直的一个是两页高)。水平滚动视图位于垂直滚动视图中。我正在尝试模仿 Calcbot 的设计,您可以在其中向左/向右滚动按钮和向上/向下滚动历史记录。

然而,当视图加载时,水平滚动视图比它应该的位置高出大约 100 像素。然后,当我触摸它并开始稍微移动它时,它会跳/跳到正确的位置并停留在那里。我如何让它从一开始就正确显示?

这是我的 viewDidLoad 代码:

-(void)viewDidLoad {
horizontalScrollView.pagingEnabled = YES;
verticalScrollView.pagingEnabled = YES;


horizontalScrollView.contentSize = CGSizeMake(horizontalScrollView.bounds.size.width * 2, horizontalScrollView.bounds.size.height); // 2 pages wide.
verticalScrollView.contentSize = CGSizeMake(verticalScrollView.bounds.size.width, verticalScrollView.bounds.size.height * 2);


horizontalScrollView.delegate = self;
verticalScrollView.delegate = self;




[verticalScrollView addSubview:horizontalScrollView];

[verticalScrollView setContentOffset:CGPointMake(0, 640)];

[self.view addSubview:verticalScrollView];

horizontalScrollView.frame = CGRectMake(0, 540, 320, 460);

}

谢谢。

4

3 回答 3

4

当您设置 pagingEnabled = YES 并且 contentOffset 设置为不在页面边界上的位置(可被 bounds.size.height 整除)时,通常会在 UIScrollView 中跳转。

于 2012-07-26T06:34:33.957 回答
0

只是一个快速的想法,因为我目前也在搞乱 UIScrollView 。您可以尝试使用-(void)viewWillAppear:(BOOL)animated. 例如,我在该方法中设置了最小和最大滚动,因为它取决于内容的大小,从我阅读的内容来看,直到 viewWillAppear 才设置。

于 2012-06-20T05:13:40.793 回答
0

移动这条线

horizontalScrollView.frame = CGRectMake(0, 540, 320, 460);

viewWillAppear而不是viewDidLoad,看看它是否有效

于 2012-06-20T05:13:54.733 回答