gpt4 book ai didi

ios - 如何在 iOS 的 2 个表格 View 之间自定义动画(segue)?

转载 作者:行者123 更新时间:2023-12-01 16:45:39 26 4
gpt4 key购买 nike

背景:我在应用程序中有表 1 和表 2,
开始 View 是表1,

实现什么:用户向右滑动,然后 View 从左向右滑动并显示表 2

我的方法:

  • 我尝试在表1和表2之间添加segue,并使用push样式,问题是表2总是从右向左滑动,所以我放弃了这个方法
  • 自定义动画:我添加了自定义segue,确实,当用户向右滑动时,我可以看到从左到右的过渡。问题是:表 2 只显示一次,然后变成黑屏。

  • 我自定义的 segue 代码如下:

    UIViewController* source = (UIViewController *)self.sourceViewController;
    UIViewController* destination = (UIViewController *)self.destinationViewController;
    CGRect sourceFrame = source.view.frame;
    sourceFrame.origin.x = sourceFrame.size.width;

    CGRect destFrame = destination.view.frame;
    destFrame.origin.x = -destination.view.frame.size.width;
    destination.view.frame = destFrame;

    destFrame.origin.x = 0;

    [source.view.superview addSubview:destination.view];

    [UIView animateWithDuration:0.5
    animations:^{
    source.view.frame = sourceFrame;
    destination.view.frame = destFrame;
    }
    completion:^(BOOL finished) {
    UIWindow *window = source.view.window;
    [window setRootViewController:destination];
    }];


    我怀疑这是由于完成代码: 窗口 setRootViewController:destination 因为表 1 和表 2 使用 uitableviewcontroller 而不是 uiview Controller ,
    我试图将上面代码中的uiviewcontroller更改为uitableviewcontroller,但它仍然不起作用。

    任何机构都知道如何解决这个问题?
    源代码可以在这里下载 http://d.pr/f/tAkc

    最佳答案

    所以..对不起我之前的回答,但我不能用我的实际声誉发表评论。

    将 View 推送到另一个 View 后,黑色 View 的问题在于您的 segue。

    尝试删除此代码:

    completion:^(BOOL finished) {
    UIWindow *window = source.view.window;
    [window setRootViewController:destination];

    如果我删除它,则 segue 已完成并且第二张 table 仍然存在,但另一个问题是您无法滑回第一张 table 。

    关于ios - 如何在 iOS 的 2 个表格 View 之间自定义动画(segue)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20188149/

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