gpt4 book ai didi

iOS Segue - 从左到右 -

转载 作者:IT王子 更新时间:2023-10-29 05:01:27 25 4
gpt4 key购买 nike

我已经阅读了关于 segues 的其他帖子,但没有一个能解决我的问题。

简单地说,我的 ViewController 是有序的,就像一本书。我想要向后过渡(例如:从第 9 页到第 8 页)始终从左到右呈现(滑过)。我想要向前过渡(从第 9 页到第 10 页)从右到左呈现。

是的,如果您逐页翻阅,我的导航 Controller 后退按钮(左上角)会像这样显示。但是,如果您从索引处跳转,则导航 Controller 上的后退功能会将您带回到索引处。

我的目标是,如果用户从索引跳转到第 9 页(例如),然后向右滑动,它会将页面向右滑动并显示第 8 页。一旦进入第 8 页,如果他们向左滑动该页面将向左弹开,他们将再次出现在第 9 页。

默认情况下,我所有的 ViewController 都是通过从右向左滑入来呈现的。

例子:把它想象成一本书,如果我使用索引跳到第 4 章,然后向右滑动并从堆栈中弹出一个 View ,我就会回到索引处。但是,如果您在第 4 章第 394 页上向右滑动,您就不想返回索引!您想转到第 3 章的最后一页,第 393 页!所以导航堆栈对我没有帮助。

结束例子

详细信息:1. 我在点击按钮时使用新的 Xcode“显示”在 ViewController 之间切换。

  1. 我正在使用导航 Controller 来实现左上角的“后退”按钮功能。这使用导航堆栈并且工作正常。

  2. 但是我在底部有自己的自定义导航栏(后退按钮、主页按钮、索引按钮、前进按钮)和手势。这些是我想要的类似书籍的功能。

  3. 快速编码。

  4. 使用 Xcode 6.3

我读到有动画代码。我读过可以使用的深度编程转换。没有简单的方法可以从左侧选择我想要呈现的 segues 并轻松反转动画,这似乎很疯狂。

谢谢!

尝试日志:

I tried DCDC's code:
UIView.transitionWithView(self.window!, duration: 0.5, options:.TransitionFlipFromLeft, animations: { () -> Void in
self.window!.rootViewController = mainVC
}, completion:nil)

当我将 DCDC 的代码插入 IBAction 以进行向后滑动时返回此错误

This error is returned when I insert DCDC's code into an IBAction for my back-swipe

最佳答案

这就是我在不需要导航 Controller 的情况下实现效果的方法。试试这个:

swift 4:

import UIKit
class SegueFromLeft: UIStoryboardSegue {
override func perform() {
let src = self.source
let dst = self.destination

src.view.superview?.insertSubview(dst.view, aboveSubview: src.view)
dst.view.transform = CGAffineTransform(translationX: -src.view.frame.size.width, y: 0)

UIView.animate(withDuration: 0.25,
delay: 0.0,
options: .curveEaseInOut,
animations: {
dst.view.transform = CGAffineTransform(translationX: 0, y: 0)
},
completion: { finished in
src.present(dst, animated: false, completion: nil)
}
)
}
}

swift 3:

import UIKit

class SegueFromLeft: UIStoryboardSegue
{
override func perform()
{
let src = self.sourceViewController
let dst = self.destinationViewController

src.view.superview?.insertSubview(dst.view, aboveSubview: src.view)
dst.view.transform = CGAffineTransformMakeTranslation(-src.view.frame.size.width, 0)

UIView.animateWithDuration(0.25,
delay: 0.0,
options: UIViewAnimationOptions.CurveEaseInOut,
animations: {
dst.view.transform = CGAffineTransformMakeTranslation(0, 0)
},
completion: { finished in
src.presentViewController(dst, animated: false, completion: nil)
}
)
}
}

然后在 Storyboard中,单击您要更改的转场。在属性检查器中将类型更改为“自定义”并将类更改为“SegueFromLeft”

关于iOS Segue - 从左到右 -,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30763519/

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