如果我有一个5页宽的uiscrollview,当我滚动到新页面时,什么代码会告诉我我在哪个页面?此外,什么代码会滚动到特定页面?
谢谢!
答案 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)
查看Apple的PageControl示例:
http://developer.apple.com/iphone/library/samplecode/PageControl/Listings/ReadMe_txt.html
答案 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]来实现。
(假设分页已启用)