我有一个UIScrollView,它通过 viewController1.view 和 viewController2.view 属性添加了2个不同的视图。我希望在屏幕上出现 viewController1.view 或 viewController2.view 时收到通知。试图使用 viewDidAppear 方法,但不会调用它。
错过了什么?有什么想法吗?
谢谢!
//Add xViewController to scrollView
[scrollView addSubview:firstViewController.view];
[scrollView addSubview:secondViewController.view];
[scrollView addSubview:thirdViewController.view];
[scrollView addSubview:fourthViewController.view];
答案 0 :(得分:2)
只有在将视图控制器推送到堆栈而不是单个视图时才能触发viewDidAppear等方法。对不起,我不能真正建议你如何跟踪他们到屏幕上 - 除非你初始化并隐藏他们的内容,然后一旦准备好你就知道你只是一个。隐藏=没有呼叫显示他们。
答案 1 :(得分:1)
您需要使用scrollview的contentOffset来计算在UIScrollViewDelegate函数scrollViewDidScroll中显示哪个视图。
查看PageControl的实现以了解UIScrollView的工作原理。PageControl Demo