2010-10-18 38 views
0

我已经运行了大约10种不同的方法,它们都通过它们之间的“页面”和“索引”来定义一个包含多个页面的ScrollView。大多数这些方法在循环内运行(针对每个页面)。如何获取有关UIScrollView中页面的信息?

我正在努力根据设备方向重新定位和重新定位页面。我现在遇到的麻烦是试图访问这些多个页面,所以我可以运行重新定位它们的方法。有没有办法循环访问页面并访问他们的信息(大小,框架,ContentSize等),然后我们就可以操纵它们了?

回答

1

您可以将每个视图的指针放入数组中。然后通过阵列配置迭代像这样的视图:

-(void)configScrollViewForOriantation:(UIInterfaceOrientation)interfaceOrientation 

    //do an if on the oriantation and supply 2 versions... 
    //eg.. 

    if(UIInterfaceOrientationIsPortrait(interfaceOrientation)) 
    {  
    CGRect f; 
    for (UIViewController *page in pageArray) { 


    f = page.frame; 
    f.size.width = ..; 
    f.origin.x = ....; 

    page.contentSize = CGSizeMake(newWidth,newHeight) 

    //etc 

    } 
else{ 
//landscape config 
} 

} 

NB。如果您在CAAffine动画中调用此方法,它也会动画变化。

理想情况下,您应该只做一个for循环,并根据方向设置要执行的配置的一些常量。

+0

我该如何用这些指针生成这个数组?对不起,我有点新鲜。欢呼 – 2010-10-18 12:26:27

+0

在某些时候,您正在将您的页面添加到scrollView中,如下所示:[scrollView addSubview:myPageViewController.view];这里你可以将页面添加到数组中:[pageArray addObject:myPageViewController.view]; pageArray将是一个NSMutableArray属性,不要忘记综合,alloc&init数组。如果您需要更多帮助,请提问! – 2010-10-18 12:47:39

+0

感谢队友,你帮我解决了一直以来我一直盯着的问题,我希望我能再次让你高兴 – 2010-10-19 09:07:23

0

创建一个知道模型数据的类,并且可以将其划分为编号页。现在在你的方法之间传递该对象,而不是原始页面/索引值。现在扩展该对象以与其他方向一起工作。

相关问题