使用单个UIViewController
,我创建了两个UIView
(一个在另一个之上)。这一切都在storyboard
完成。
我添加了手势控制功能:
-(void) SwipeLeft:(UISwipeGestureRecognizer *) gest_
{
if (self.view == UIViewFirst)
return;
else
[self.view bringSubviewToFront:UIViewFirst];
}
-(void) SwipeRight:(UISwipeGestureRecognizer *) gest_
{
if (self.view == UIViewSecond)
return;
else
[self.view bringSubviewToFront:UIViewSecond];
}
}
在viewcontroller类的viewDidLoad
中,我只是做了
[self.view bringSubviewToFront:UIViewFirst]
现在观点出现了,但它们是空白的。我在两个视图中添加了标签,看看是否会这样。没有标签出现。我究竟做错了什么?我应该使用pageController
,pageViewController
还是UIScrollView
之类的内容?我的目标是能够在UIViews之间滑动内容(上半部分控制器)。
答案 0 :(得分:0)
UIPageViewController
处理所有过渡,并将其包装成漂亮,流畅的动画。您最初只需设置viewControllers
属性,然后实现两个委托方法,以便控制器知道下一个视图。
public func pageViewController(_ pageViewController: UIPageViewController, viewControllerBefore viewController: UIViewController) -> UIViewController?
public func pageViewController(_ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController?
我的建议是你继承UIPageViewController并实现这些方法,在这个类上保留一组视图控制器的弱实例,然后在viewDidLoad
中将pageController.viewControllers
属性设置为你的数组并在委托方法处理计算当前索引并基于此建议下一个控制器。
请注意您的观点'实际上必须包含在不同的视图控制器中才能使用UIPageViewController
。
可以找到更多信息here