【问题标题】:How do I make a UIPageViewController animation have an offset edge for page-flipping affordance?如何使 UIPageViewController 动画具有用于翻页功能的偏移边缘?
【发布时间】:2012-01-11 17:06:06
【问题描述】:

我有兴趣在我正在创建的新的寻宝 iPhone 应用程序中使用新的 UIPageViewController 类。带有藏宝图线索等的翻页动画看起来很漂亮。我注意到的一件事是,在 iBooks 中,Apple 让它看起来实际上有一堆页面,以便为翻到下一页提供 UI 提示.这对我来说似乎是个好主意。

巧妙的是,在典型的 Apple 对细节的关注中,翻页动画不像我见过的页面视图控制器示例那样从屏幕边缘开始,而是从屏幕边缘偏移开始第一页所在的屏幕。这样一来,您就不会获得额外的页面图形作为被翻转页面的一部分,并且后续页面似乎保持在原位。

有人知道如何在我们自己的使用页面视图控制器的应用中实现这种效果吗?

【问题讨论】:

    标签: iphone objective-c cocoa-touch xcode4.2 uipageviewcontroller


    【解决方案1】:

    只需将 UIPageViewController 嵌入另一个 UIViewController 并将框架设置为父框架的一部分。使用 iOS5 嵌入终于很容易了。 (见 addChildViewController)

    【讨论】:

    • 我会检查的。您知道是否可以在情节提要中执行此操作,还是以编程方式执行此操作更好?
    • 还没试过storyboard,但是通过代码嵌入PageViewController肯定是可以的。
    • 是的,就是这样做的。 Apple 的 iPhone 模板没有这样做,但如果您查看 iPad 的 Page Based Application 模板,您会看到页面被嵌入到主视图中。他们使用CGRectInset 函数在调用didMoveToParentViewController 之前设置页面视图控制器的框架。
    【解决方案2】:

    UIPageViewController 中有 initWithTransitionStyle: navigationOrientation: options: 方法。只需在选项字典中为键 UIPageViewControllerOptionInterPageSpacingKey 设置一些 NSNumber(带浮点数)。 (iOS6+)

    【讨论】:

      【解决方案3】:

      斯威夫特 4:

      您可以在UIPagerViewController 的初始化中使用options 参数传递spacing 值。

      示例:

      private lazy var pagerController = UIPageViewController(
          transitionStyle: .scroll,
          navigationOrientation: .horizontal,
          options: [
              UIPageViewController.OptionsKey.interPageSpacing: 40.0
          ]
      )
      

      【讨论】:

        猜你喜欢
        • 2019-05-30
        • 2017-01-05
        • 1970-01-01
        • 2023-04-10
        • 2019-07-19
        • 1970-01-01
        • 1970-01-01
        • 2012-12-14
        • 1970-01-01
        相关资源
        最近更新 更多