如何获取有关 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 - 如何一次轻弹多个页面
typescript 您可以在http://peter.grman.at/how-to-write-typescript-definition-files上阅读有关该过程以及如何创建自己的定义文件的信