1

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

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

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

我的简单条件:

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”就是我的 Scroll View 对象,它位于我的 ViewController 中。

4

2 回答 2

0

要在滚动视图中显示特定页面,您可以使用setContentOffset滚动视图的方法。

[scrollview setContentOffset:CGPointMake(pageIndex*320,0) animated:YES];//if horizantal Scroll scroll
于 2013-05-25T05:49:30.417 回答
0

您正在尝试在滚动视图中创建分页.. 一个非常常见的 UI 问题,在您之前和之后会有很多人面临.. 每当您遇到这样的问题.. 您应该做的第一件事就是看看是否有是一个现有的库,可以为您完成繁重的工作。

幸运的是......有几个可靠的库可以精确地解决这个问题。我使用three20,它有一个处理滚动视图分页的TTScrollView类。

关于three20 的一个常见抱怨是它非常缺乏文档。幸运的是,对于three20 来说,有一个更好的文档替代方案,称为nimbus,它也有一个分页滚动视图类。我强烈建议你检查这些家伙。

于 2013-05-25T08:20:02.710 回答