如何以编程方式导航到特定页面。基本上我有一个带有scrollView的应用程序,其中填充了一堆子视图(在本例中为tableViews)。当点击子视图时,它会放大并且用户可以编辑和导航表,但是当我缩小时,我会重新加载整个视图,以防用户做出任何更改。当然重新加载视图会将用户发送回第0页。我已经尝试设置pageControl.currentpage属性,但所有这一切都改变了pageControl的点。这是否意味着某些事情是错误的,还是我还需要做其他事情?
控制页面滚动的所有方法都是这种方法:
- (void)scrollViewDidScroll:(UIScrollView *)sender
{
CGFloat pageWidth = self.scrollView.frame.size.width;
int page = floor((self.scrollView.contentOffset.x - pageWidth / 2) / pageWidth) + 1;
self.pageControl.currentPage = page;
NSString *listName = [self.wishLists objectAtIndex:self.pageControl.currentPage];
self.labelListName.text = listName;
}
答案 0 :(得分:48)
您必须手动计算相应的滚动位置。要滚动到第i页:
[scrollView setContentOffset:CGPointMake(scrollView.frame.size.width*i, 0.0f) animated:YES];
答案 1 :(得分:0)
Ole Begemann的上述答案的Swift 5版本
scrollView.setContentOffset( CGPoint(x: scrollView.frame.size.width * i, y: 0.0), animated: true)
答案 2 :(得分:0)
快捷键5 ,您可以轻松使用scrollView.scrollRectToVisible
如果实现了Horizontal
分页滚动视图,其大小为默认view width of the device
,并且想要导航到第n
页,则:
scrollView.scrollRectToVisible(CGRect(x: self.view.center.x * n, y: self.view.center.y, width: self.view.frame.width, height: self.view.frame.height) ,animated: true)
您只需要根据滚动视图配置定义CGRect()位置。