如何在uiscrollview上滚动页面?

时间:2010-06-02 13:46:47

标签: iphone objective-c cocoa-touch uiscrollview

如果我有一个5页宽的uiscrollview,当我滚动到新页面时,什么代码会告诉我我在哪个页面?此外,什么代码会滚动到特定页面?

谢谢!

3 个答案:

答案 0 :(得分:1)

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
    CGFloat pageWidth = scrollView.frame.size.width;
    int currentPage = floor((scrollView.contentOffset.x - pageWidth / 2) / pageWidth) + 1;
    pageControl.currentPage = currentPage;
}

我将scrollview框架宽度作为页面宽度。如果您使用其他内容作为页面宽度,请进行相应的更改以使其正常工作

滚动到当前页面 - 如果我理解正确,您可以选择输入页码并选择滚动到该页面:

只需上面的代码,按顺序执行,并解决contentOffset.X

获得x值后,创建一个包含x的框架,scrollToRect:animated:将完成工作。

答案 1 :(得分:0)

答案 2 :(得分:0)

-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
CGFloat scroller_x = [scrollView contentOffset].x;
CGFloat scroller_y = [scrollView contentOffset].y;
NSLog(@"%f, %f",scroller_x,scroller_y);
}

一旦这个委托方法触发(在滚动上),请在每个视图框架上检查它.origin.x和frame.origin.y匹配的视图框架将是您滚动到的视图。

[scrollView setContentOffset:<#(CGPoint)#>];

使用此方法滚动到特定的view.frame.origin。因此,假设您有一个转到特定视图的操作,您可以使用[scrollView setContentOffset:view.frame.origin]来实现。

(假设分页已启用)