gpt4 book ai didi

ios - 在两个 UIViewControllers 的 View 之间滑动

转载 作者:技术小花猫 更新时间:2023-10-29 11:13:02 27 4
gpt4 key购买 nike

我知道我已经问过几次这个问题,但我经验不足,认为我还没有得到正确的答案。

我现在有两个 View Controller ,每个都有一个 .h 文件、一个 .m 文件和一个 .xib 文件。在这两个 .xib 文件中,我都有一个 UIView。我怎样才能让你可以在这两个 View 之间滑动?例如,应用程序在第一个 View 中打开,然后您从右向左滑动,下一个 View 就会出现。我希望在滑动照片时滑动的动画类似于照片应用程序的动画。

最佳答案

虽然您可以自己实现它(使用 custom container view controller 结合 UIPanGestureRecognizerUIScrollView),但如果使用 iOS 6 及更高版本,最简单的方法是使用一个Page View Controller具有“滚动”过渡样式。

考虑这个 Storyboard:

pageviewcontroller storyboard

它由一个页面 View Controller 和两个页面的两个场景组成。页面 1 有一个 Storyboard标识符 one 和一个基类 PageOneViewController。页面 2 有一个 Storyboard标识符 two 和一个基类 PageTwoViewController

然后我写了一个 UIPageViewController 子类(很明显,这是我为上述 Storyboard的第一个场景指定的类),它具有以下代码:

- (void)viewDidLoad
{
[super viewDidLoad];

self.dataSource = self;

[self setViewControllers:@[[self.storyboard instantiateViewControllerWithIdentifier:@"one"]] direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil];
}

- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController
{
if ([viewController isKindOfClass:[PageOneViewController class]])
return nil;

return [self.storyboard instantiateViewControllerWithIdentifier:@"one"];
}

- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController
{
if ([viewController isKindOfClass:[PageTwoViewController class]])
return nil;

return [self.storyboard instantiateViewControllerWithIdentifier:@"two"];
}

您也可以使用 NIB 执行此操作,但需要编写更多代码。如果您搜索 UIPageViewController XIB,您可能会得到一些结果。

如果您需要支持 6.0 之前的 iOS 版本,则必须使用平移手势或 ScrollView 的自定义容器方法。

关于ios - 在两个 UIViewControllers 的 View 之间滑动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18047387/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com