我想在我的应用中使用UIPageControl,但每个页面都有复杂的内容,需要花费数小时才能以编程方式完成。所以我的问题是我是否可以创建一个数组来保存具有不同视图的所有XIB文件的名称,并根据用户的页面加载它们?
如果有人对需要使用哪些方法有任何见解,我们将非常感激。我已经知道了所有UIPageControl函数,我只是对[addsubview subview:one]之类的东西感到困惑,例如...
谢谢!
修改
据说我有一个名为* AreaViewController的UIViewController。 UIPageControl在另一个名为* simpleViewController的UIViewController中。我在simpleViewController.h中导入了“areaViewController.h”。从那里我已经声明了IBOutlet AreaViewController * testing1;
现在在simpleViewController.m中,我在其中一个方法中执行此操作(从这一点开始,我知道UIPageControl可以正常工作,因为我已经使用每个页面上的颜色等简单的东西进行了测试)
[scrollView addSubview:testing1.view]; //因此,当加载UIPageControl的第1页时,它将是AreaViewController的视图。这让我崩溃了...任何想法为什么?
由于
答案 0 :(得分:0)
UIPageControl与UIScrollView一起使用,UIScrollView只是一个超出视口的视图。它还有一个您设置为YES的分页属性,以便获得您正在寻找的对齐分页效果。
话虽如此,您需要在UIScrollView内的这个大型水平跨越视图上布局视图。
出于视觉目的,请考虑以下内容
|______|_|______|
< - 这是您的滚动视图的内容,| |
代表设备的屏幕/视口
您需要在该大视图上布置视图,以便在滚动时视图变得可见,因此请设置一些视图......
[1_2_3_4_5_|6|_7_8_9_0]
在这种情况下,我们的滚动视图在其内容区域上有10个视图,我们的用户可以在设备上看到第6个视图。现在视图6来自哪里?可能的情况是,开发人员创建了一个UIViewController或UIView,并将其作为子视图添加到scrollview的内容区域,并相应地设置它的位置,使其位于第6位。
所以说它应该让你知道如果用界面构建器创建视图或视图控制器,你可以轻松地以编程方式初始化该视图/控制器,然后将其视图作为子视图添加到UIScrollView。
现在管理滚动视图还有很多内容,但我希望能为您清除这个概念。
尽量不要过多地迷惑自己,只是意识到UIScrollView只是一个非常大的视图,不适合视口,你可以像往常一样在任何其他UIView上添加你想要的任何子视图。这是完全可见的。
修改强>
同时记住内存注意事项,如果您的观点非常复杂并且一次性全部放置是不可行的,您可能需要做一些棘手的事情。您可能会遇到这样的情况:您只有3个视图布局,一个在左侧,一个可见,一个在右侧。当用户滚动一个方向时,比如说左边,你做一些幕后工作来删除右边的额外视图,使左视图现在成为中心视图,然后创建一个现在最左边的新视图。 / p>
现在看来......
[4|5|6]
用户滑动以查看左侧视图(4),重新构建您的滚动视图,使其看起来像[3|4|5]