使用UIPageControl构建文本轮播的正确方法

时间:2015-01-01 15:45:42

标签: ios animation swift layout carousel

我尝试使用UIPageControl重现简单的文本轮播,类似于以下登录屏幕:

spotify login screen


I've created the following layout (view -> label , text):

UI builder view hierarchy


编辑:我发现了一些使用UIPageViewController的教程:http://www.appcoda.com/uipageviewcontroller-tutorial-intro/,但结果却是"掩盖"我的整个视图禁用了我现有的界面。

出现的问题

  1. 我希望有多个段落类似于创建的布局,我应该在没有约束的情况下构建它们吗? - 不只是将一个视图创建为"模板"
  2. 如何使用界面构建器在文本字段中断行? -solved:ALT + Enter
  3. 为进入和离开布局设置动画的正确方法是什么? - 使用UIPageViewController,不要为视图添加动画
  4. 或许......有一个图书馆可以让我的生活更简单 - 可以,我已经找到了解决方案直截了当(最后)
  5. 问:您将如何实现此功能?任何好的教程?

2 个答案:

答案 0 :(得分:3)

在使用此功能后,I'm sharing the project,享受

答案 1 :(得分:1)

我使用了@Shlomi Schwartz的项目,当我使用超过3 UIPageViewController时遇到了一个错误(例如,使用@Shlomi Schwartz的项目尝试4 UIPageViewController)。问题来自于缺少和未实现的可选UIPageViewControllerDelegate的方法,这使得UIPageControl变得疯狂。

请找到修复以下错误的特定方法:

/*
    Optional UIPageViewControllerDelegate method

    Sent when a gesture-initiated transition ends. The 'finished' parameter indicates whether
    the animation finished, while the 'completed' parameter indicates whether the transition completed or bailed out (if the user let go early).
*/
func pageViewController(pageViewController: UIPageViewController,
    didFinishAnimating finished: Bool,
    previousViewControllers: [AnyObject],
    transitionCompleted completed: Bool)
{
    // Turn is either finished or aborted
    if (completed && finished) {
        let currentDisplayedViewController = self.pageViewController!.viewControllers[0] as! ContentViewController
        self.pageControl.currentPage = currentDisplayedViewController.index
    }
}

如果您想获得完整的工作项目,请在下面找到Github链接:

Github link of the project

注意:再次感谢@Shlomi Schwartz与社区分享了最初的片段(非常有用)。我也没有忘记在源代码中提及他作为主要作者。