【发布时间】:2015-12-19 01:35:47
【问题描述】:
我知道之前有人问过这个问题,但我没有得到任何关于我的问题的具体答案。我正在使用页面控件和 scrollView 添加视图控制器,然后使用滑动显示所有页面。我需要在单击按钮时重定向到特定页面。我尝试了 scrollView SetcontentOffet 和其他所有可能性。
-(void)ScrollToPage:(int)page
{
UIViewController *controller = [self.childViewControllers objectAtIndex:page];
if (controller.view.superview == nil)
{
CGRect frame = self.scrollView.frame;
if (frame.size.width == 0)
{
frame.size.width = self.view.frame.size.width;
frame.size.height = self.view.frame.size.height;
}
frame.origin.x = frame.size.width * page;
frame.origin.y = 0;
controller.view.frame = frame;
[scrollView setContentOffset:CGPointMake(frame.origin.x, frame.origin.y) animated:YES];
self.pageControl.currentPage = page;
[self centerScrollViewContents];
[self.scrollView setContentOffset:CGPointMake(frame.origin.x, frame.origin.y)];
[self.scrollView scrollRectToVisible:frame animated:YES];
[self.scrollView addSubview:controller.view];
}
}
【问题讨论】:
-
您是否将滚动视图的内容大小设置为与内容的宽度/高度相匹配?此外,同时调用 setContentOffset 和 scrollRectToVisible 没有意义,因为它们的作用几乎相同。
标签: ios objective-c uiscrollview uipagecontrol