在由页面控件控制的滚动视图上添加不同的表视图

时间:2013-04-24 11:23:48

标签: ios objective-c uitableview uiscrollview uipagecontrol

我在由页面控件控制的滚动视图中添加了不同的表视图。我这样设置它们。

- (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;

        frame.origin.x = (320 * page)+20;
        NSLog(@"orgin x is %d",(320 * page)+20);
        NSLog(@"orgin x is %f",frame.origin.x);
        frame.origin.y = 0;

        UITableView *table = [[UITableView alloc]initWithFrame:frame];
        table.delegate = self;
        table.dataSource = self;

        table.contentMode = UIViewContentModeScaleAspectFit;
        [self.scrollView addSubview:table];
        [self.pageViews replaceObjectAtIndex:page withObject:table];
    }
}

每件事都运转正常。添加了表视图,并且滑动als工作。唯一的问题是x坐标不对。每个桌面视图的两侧边距应为20像素。因此,要获得下一个tableview的X,我会这样做。

frame.origin.x = (320 * page)+20;

对于第一个tableview来说没关系,但是当我滚动到下一个时,它每次都会向左侧移动一点。

有人能帮助我吗?

1 个答案:

答案 0 :(得分:0)

当我设置表格的边界而不是框架本身尝试添加此

时,它与我一起解决了
[table setBounds:CGPointMake(x, y>)];