将UIViews添加到ScrollView时发生了奇怪的事情

时间:2011-10-09 10:19:53

标签: iphone objective-c ios cocoa-touch ios4

将UIViews添加到我的scrollview时遇到问题:

NSArray *views = [NSArray arrayWithObjects:view1, view2, view3,nil];
    for (int i = 0; i < views.count; i++) {
        CGRect frame;
        frame.origin.x = self.scrollView.frame.size.width * i;
        frame.origin.y = 0;
        frame.size = self.scrollView.frame.size;



        [self.scrollView addSubview:[views objectAtIndex:i]];
    }


    self.pageControl.numberOfPages = views.count;
    self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width * views.count, self.scrollView.frame.size.height);

这就是我正在使用的代码。问题是ScrollView有三个页面,而且只有第一页实际上包含一个视图,这是数组中的最后一个。为什么会这样?我也尝试过:

for (UIView *view in views) {
    [self.scrollView addSubview:view];
}

结果相同。我做错了什么?

2 个答案:

答案 0 :(得分:1)

您需要设置添加的视图的位置:

[views objectAtIndex:i].frame = frame;

您当前没有在任何地方更改视图的位置,因此所有这些都可能位于(0 | 0)。

答案 1 :(得分:0)

你正在循环中初始化帧但是省略对它做任何事情。您需要替换每个视图的框架才能使用它。