0

我有UIScrollview包含不同的UITableviews. UITableviews您可以使用滚动浏览这些UIPagecontrol

这就是我将 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];
    }
}

UITableview现在我希望该用户可以从另一个跳转到某个UIViewController。因此我有一个变量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];
}

问题是它没有跳转到正确的页面。它停留在第一页。

有人可以帮我弄这个吗?

4

1 回答 1

0

当您将内容添加到滚动视图时,您还必须告诉增加contentSize

于 2013-06-21T07:57:41.453 回答