在UIScrollView的某个页面上添加子视图

时间:2013-05-25 05:43:21

标签: ios objective-c uiscrollview

我的应用程序在屏幕上动态创建按钮,我有一个设置,当一个屏幕上的按钮数量达到一定量时,它会向滚动视图添加一个新的“页面”。

如何访问新创建的滚动视图的特定页面?

我希望能够将下一个按钮放在视图的下一页上。

我的简单条件:

if (numberOfButtons % 12 == 0) {        
    numberOfViews++;
    [self createView];
     numberOfViews++;
    [self createView];
    [self.containerView addSubview:button]    
}

我的视图是如何生成的(createView):

-(void)createView {
    int multiplier  = numberOfViews;
    NSLog(@"Views: %i",multiplier);
    for (int i = 0; i < multiplier; i++) {        
        CGRect frame;
        frame.origin.x = self.containerView.frame.size.width * i;
        frame.origin.y = 0;
        frame.size = self.containerView.frame.size;
        UIView *subview = [[UIView alloc]initWithFrame:frame];
        [viewCount addObject:subview];
        subview.backgroundColor = self.containerView.backgroundColor;
        [self.containerView addSubview:subview];
    }

    self.containerView.contentSize = 
                             CGSizeMake(self.containerView.frame.size.width * multiplier,
                                           self.containerView.frame.size.height);

    [containerView setContentOffset:CGPointMake(numberOfViews*320,0)];
        NSLog(@"View Created!");

}

如果有帮助,“self.containerview”是我的ViewController中的Scroll View对象。

2 个答案:

答案 0 :(得分:0)

用于在scrollview中显示特定页面,您可以使用setContentOffset方法进行scrollview。

[scrollview setContentOffset:CGPointMake(pageIndex*320,0) animated:YES];//if horizantal Scroll scroll

答案 1 :(得分:0)

你正试图在一个滚动视图中创建分页..这是一个非常常见的UI问题,在你和你面临之前,你会遇到很多人......每当你遇到这样的问题时......你应该做的第一件事就是看看是否有一个现有的库为你做了咕噜咕噜的工作。

幸运的是,有几个可靠的库可以解决这个问题。我使用three20,它有一个处理scrollview分页的TTScrollView类。

关于three20的常见抱怨是它非常缺乏文档...幸运的是,对于名为nimbus的three20,有一个更好的文档替代方案,并且还有一个paging scrollview class。我强烈建议你检查这些人。