如何获取有关 UIScrollView 中页面的信息?

Posted

技术标签:

【中文标题】如何获取有关 UIScrollView 中页面的信息?【英文标题】:How do I obtain information about the pages in a UIScrollView? 【发布时间】:2010-10-18 11:00:58 【问题描述】:

我运行了大约 10 种不同的方法,它们都在它们之间传递“页面”和“索引”,以便定义具有多个页面的 ScrollView。这些方法中的大多数都在一个循环中运行(对于每个页面)。

我正在研究一种根据设备方向重新定位和重新定位页面的方法。我现在的麻烦是尝试访问这些多个页面,以便我可以运行重新定位它们的方法。有没有办法循环浏览页面并访问它们的信息(大小、框架、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



注意。如果您在 CAAffine 动画中调用此方法,它也会为更改设置动画。

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

【讨论】:

如何使用这些指针生成这个数组?抱歉,我对此有点陌生。干杯 在某些时候,您会将页面添加到滚动视图中,如下所示:[scrollView addSubview:myPageViewController.view];在这里,您可以将页面添加到数组中: [pageArray addObject:myPageViewController.view]; pageArray 将是一个 NSMutableArray 属性,不要忘记合成、分配和初始化数组。如果您需要更多帮助,请询问! 谢谢老兄,你帮我解决了一个我一直盯着太久的问题,我希望我能再次投票给你【参考方案2】:

创建一个了解模型数据的类,并可以将其划分为带编号的页面。现在在您的方法之间传递该对象,而不是原始页面/索引值。现在扩展该对象以使用您的其他方向。

【讨论】:

以上是关于如何获取有关 UIScrollView 中页面的信息?的主要内容,如果未能解决你的问题,请参考以下文章

如何获取 UIScrollView 中滚动的 contentOffset?

如何在 UIScrollView 中获取 UIImageView 的位置并只允许平移它?

Paging UIScrollView - 如何一次轻弹多个页面

如何从 UIScrollView 导航到自定义页面

typescript 您可以在http://peter.grman.at/how-to-write-typescript-definition-files上阅读有关该过程以及如何创建自己的定义文件的信

UIScrollView 通过拖动到主视图