将2个UIView添加到UIScrollView

时间:2013-10-04 08:57:54

标签: ios uiscrollview

是否可以使用UIScrollViewController滚动或“分页”来自UIViewControllers的两个或多个视图? 示例(在viewDidLoad中)

        self.a1    = [[CustomViewController1 alloc] init];

        self.a2  = [[CustomViewController2 alloc] init];

        //Scroller
        self.scroller   = [[UIScrollView alloc] initWithFrame:CGRectMake(0,0,1000,400
                                                                        400)];
        [self.scroller addSubview:self.a1.view];
        [self.scroller addSubview:self.a2.view];

        [self.view addSubview:self.scroller];

但我只能在滚动条中看到控制器a2的视图。

4 个答案:

答案 0 :(得分:1)

您需要设置视图的帧,使它们位于另一个下方。目前他们都在那里,彼此之上。

尝试加入

self.a2.view.frame = CGRectMake(0, 480, 320, 480);

答案 1 :(得分:1)

您还必须修改框架。现在a1和a2具有相同的,并且它们位于彼此之上,因此a2是可见的,因为你添加了后者。

尝试

self.a2.view.frame = CGRectOffset(self.a2.view.frame, self.a1.view.frame.size.width, 0);

答案 2 :(得分:0)

解决方案是在滚动条内设置子视图的框架坐标:

CGRect frame = CGRectMake(0, 0, 1000, 600);
self.a1    = [[CustomViewController1 alloc] init];
self.a1.view.frame = frame;

self.a2  = [[CustomViewController2 alloc] init];
frame.origin.x = frame.size.width +10;
self.a2.view.frame = frame;
[self.scroller addSubview:self.a1.view];
[self.scroller addSubview:self.a2.view];

[self.view addSubview:self.scroller];

答案 3 :(得分:0)

您需要将自定义视图控制器添加为子视图控制器。有关正确执行此操作的详细信息,请参阅Apple's documentation