UITableview未在uiscrollview中正确放置

时间:2013-05-14 09:15:18

标签: iphone ios objective-c uitableview uiscrollview

我有一个使用pagecontrol的UIscrollView。我在代码中将表添加到scrollview。 tableviews的每边应该有20px的填充。所以我做了以下几点。

 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 *tableStage = [[UITableView alloc]initWithFrame:frame];
        tableStage.backgroundColor = [UIColor colorWithRed:(250/255.0) green:(248/255.0) blue:(247/255.0) alpha:100];
        tableStage.delegate = self;
        tableStage.dataSource = self;
        tableStage.tag = page;

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

但是我得到了以下结果。 enter image description here

就像你可以看到下一个tableview总是向左移动一些东西。知道如何解决这个问题吗?

3 个答案:

答案 0 :(得分:1)

试试这个

CGRect frame = self.scrollView.bounds;
float offset=20;
frame.size.width = frame.size.width-(2*offset);
frame.origin.x = (320 * page)+offset;
frame.origin.y = 0;
UITableView *tableStage = [[UITableView alloc]initWithFrame:frame];

并且不需要这一行

    tableStage.contentMode = UIViewContentModeScaleAspectFit;

答案 1 :(得分:0)

CGRect frame = self.scrollView.bounds;
frame.size.width = 280.0f;
frame.size.height = self.scrollView.bounds.size.height;
frame.origin.x = (self.scrollView.bounds.size.width * page)+(self.scrollView.bounds.size.width - (frame.size.width/2));
frame.origin.y = 0;

答案 2 :(得分:0)

如果您正确设置了内容大小以及每个新表视图的位置,它将完美地工作。还可以启用分页。