我应该为iOS文本冒险应用程序使用什么类型的segue



所以我目前正在构建我的第一个应用程序之一,这只是一个简单的文本冒险练习。基本前提是,我希望能够向用户解释这次冒险,呈现故事,并在每个可滚动页面的末尾为他们提供如何推进故事的选项,每个选项都会导致不同的场景。

我意识到我需要用许多不同的观点和片段进行分支,我目前在场景之间转换时使用现在的模式片段,但我担心这样做可能会导致记忆问题?根据我过去的理解,以模式呈现下一页只是将其置于所有其他视图之上,这是正确的吗?

从本质上讲,我只是在努力寻找最有效的过渡选择,因为我仍在学习基础知识。最终,我也将把数据分割到下一个视图,这样在冒险结束时,我可以根据用户的选择向他们展示他们的特征值。有什么想法吗?

附言:到目前为止,我选择现在模式的原因是它有我发现的最好的过渡,让我想起了一本书(找不到翻页过渡)

这取决于您在哪里展示模态。如果您从一个主视图控制器中呈现它,那么上一个模态将被忽略。

如果你使用其他方法,比如导航控制器推送,它会不断构建视图层次结构,并导致大量内存占用,前提是用户深入探索。

附言:我想到目前为止我选择现在模式的原因是它有我发现的最好的过渡,让我想起了一本书(找不到翻页过渡)

就我个人而言,我只会使用一个视图控制器,并使用transitionWithView函数对视图进行动画处理。这将大大减少内存占用,并为用户提供有趣的转换。

class func transitionWithView(_ view: UIView,
                 duration duration: NSTimeInterval,
                  options options: UIViewAnimationOptions,
               animations animations: () -> Void,
               completion completion: ((Bool) -> Void)?)

有了这个,你可以提供各种各样的动画转换,甚至可以将其随机化,这样就不知道使用了哪一个,而且功能很酷。以下是的过渡常数

static var TransitionNone: UIViewAnimationOptions { get }
static var TransitionFlipFromLeft: UIViewAnimationOptions { get }
static var TransitionFlipFromRight: UIViewAnimationOptions { get }
static var TransitionCurlUp: UIViewAnimationOptions { get }
static var TransitionCurlDown: UIViewAnimationOptions { get }
static var TransitionCrossDissolve: UIViewAnimationOptions { get }
static var TransitionFlipFromTop: UIViewAnimationOptions { get }
static var TransitionFlipFromBottom: UIViewAnimationOptions { get }

为了避免内存问题,可以使用UIViewController-transitionFromViewController:toViewController:duration:options:animations:completion:方法来交换控制器,而不是故事板分段。您将在基本视图控制器中调用此方法,该控制器显示您的可见视图控制器,有点像UINavigationController处理此问题的方式。

或者,如果你想要一本看起来像书的东西,可以考虑使用UIPageViewController

最新更新