跳转到使用 UIPagecontrol 的滚动视图中的页面
Posted
技术标签:
【中文标题】跳转到使用 UIPagecontrol 的滚动视图中的页面【英文标题】:jump to pages in a scrollview that is using UIPagecontrol 【发布时间】:2013-06-21 07:30:06 【问题描述】:我有 UIScrollview
,其中包含不同的 UITableviews
。您可以使用UIPagecontrol
滚动浏览这些UITableviews
。
这就是我将 UITableview 添加到 UIScrollview 的方式
- (void)loadPage:(NSInteger)page
if (page < 0 || page >= self.pageStages.count)
// If it's outside the range of what we have to display, then do nothing
return;
// Load an individual page, first seeing if we've already loaded it
UIView *pageView = [self.pageViews objectAtIndex:page];
if ((NSNull*)pageView == [NSNull null])
CGRect frame = self.scrollView.bounds;
//frame.size.width = 280.0f;
frame.size.height = self.scrollView.bounds.size.height;
float offset=20;
frame.size.width = frame.size.width-(2*offset);
frame.origin.x = (326 * page)+offset;
frame.origin.y = 0;
UITableView *tableStage = [[UITableView alloc]initWithFrame:frame];
tableStage.backgroundColor = [UIColor colorWithRed:(250/255.0) green:(248/255.0) blue:(247/255.0) alpha:100];
tableStage.contentMode = UIViewContentModeScaleAspectFit;
tableStage.delegate = self;
tableStage.dataSource = self;
tableStage.tag = page;
tableStage.contentMode = UIViewContentModeScaleAspectFit;
[self.scrollView addSubview:tableStage];
[self.pageViews replaceObjectAtIndex:page withObject:tableStage];
现在我希望该用户可以从另一个UIViewController
跳转到某个UITableview
。因此我有一个变量pageNumber
。当我设置 pageNumber 时,我调用了一个方法 jumpToPage3
并给出了 pageNumber。这就是函数的样子。
-(void)jumpToPage3:(NSNumber *)page
NSLog(@"jump to page 3");
float offset=30;
float height = self.scrollView.bounds.size.height;
float width = 320 - (2*offset);
int pagee = [page intValue] - 1;
float x = (320 * pagee) + offset;
[self.scrollView scrollRectToVisible:CGRectMake(x, 0, width , height) animated:NO];
问题是它没有跳转到正确的页面。它停留在第一页。
有人可以帮我解决这个问题吗?
【问题讨论】:
您的代码看起来不错。你在哪里调用这个方法跳转到page3?页面值是否正确? id pagee 为 0 滚动视图不会滚动 @Stef Geelen- 在 NSLog 中查看 "x" 的值......它是什么......? 这是我从 x 和 page 的日志中得到的信息 --> Page 是 2,x 是 670.000000 @AlexTerente 你能帮帮我吗? 你的 Scrollview 的 contentSize 是多少? 【参考方案1】:当您向滚动视图添加内容时,您还必须告诉增加contentSize
【讨论】:
但我认为我的内容大小还可以吗?因为当我刚刚打开视图控制器时。我可以在表格视图之间滑动。只有当我跳转到一个页面时才会出现问题。 将硬编码值传递给 scrollRectToVisible:类似于 800,0,1,1 看看会发生什么。当您调用 jumpToPage3 时,您的滚动视图是否已分配并正确初始化?以上是关于跳转到使用 UIPagecontrol 的滚动视图中的页面的主要内容,如果未能解决你的问题,请参考以下文章
如何连接 UIPageControl 使其与其他控件一起向上滚动?
是否可以循环 UIScrollView/UIPageControl?
UIPageViewController 的 UIPageControl 在滚动到下一个视图控制器时有时不会更新