【问题标题】:How can I have the background colour of UIPageControl change along with the page swipe?如何让 UIPageControl 的背景颜色随着页面滑动而改变?
【发布时间】:2014-10-16 09:53:00
【问题描述】:

我的应用首次启动时有一个教程屏幕

我希望在用户从一个页面滑动到另一个页面时更改背景颜色。基本上我有这个工作,但页面控件颜色在滑动转换完成之前不会改变。

(在这个屏幕截图中,我在页面 0 和页面 1 之间滚动以显示背景颜色的变化)

如何让页面滚动时背景颜色发生变化?

这是来自我的主视图控制器的代码 - 它在 Rubymotion 中,但您应该能够遵循它:

# ...

def page_control
  page_controller.view.pageControl
end

COLORS = [UIColor.greenColor, UIColor.blueColor, UIColor.orangeColor]

def pageViewController(page_view_controller, didFinishAnimating: finished, previousViewControllers: previous_view_controllers, transitionCompleted: completed)   
   background_color = COLORS[page_control.currentPage % COLORS.size]
   page_control.backgroundColor = background_color
end

# ...

【问题讨论】:

    标签: ios ios7 ios8 uipageviewcontroller uipagecontrol


    【解决方案1】:

    为什么不能直接将 UIPageControl 的 backgroundColor 设置为 clearColor?

    【讨论】:

    • 我试过了——它继承了父控制器视图的背景颜色。页面视图不与页面控件重叠
    • 那么为什么不将页面视图重叠到控制器视图的整个高度呢?还是您已经尝试过?
    【解决方案2】:

    我遇到了同样的问题 - 我最终实现了自己的 UIPageControl。在主视图控制器中创建一个新视图,然后将 UIPageViewController 视图和 UIPageControl 添加为子视图,并设置框架,以便页面控件显示在 pageViewController 视图的底部(或您喜欢的任何位置)。

    编辑 因为UIPageViewController 被显示为另一个控制器的子视图,所以您必须在将其添加为子视图之前立即调用(从主视图控制器)[self addChildViewController:pageViewController]。然后拨打[pageViewController didMoveToParentViewController:self]。这确保了触摸事件等从主视图控制器传递到页面视图控制器。请参阅Apple Docs结束编辑

    将页面控件的背景颜色设置为clearColor,从一页到下一页的转换将发生在页面控件“后面”。然后,您可以在pageViewController didFinishAnimating 委托函数中更新页面控件(currentPagenumberOfPages)。如果你希望能够点击页面控件切换页面,在创建时添加合适的目标/动作方法,并使用UIPageViewControllersetViewControllers:animated:方法触发过渡。

    为确保UIPageViewController 不会同时显示页面控件,请删除presentationCountForPageViewController:presentationIndexForPageViewController: 的实现。

    【讨论】:

    • 这听起来很有希望 - 让我试一试并报告:)
    • @bodacious 我意识到我应该提到另一个步骤,即添加一个视图控制器作为另一个视图控制器的子视图 - 尽管您可能已经知道。我将编辑我的答案。
    猜你喜欢
    • 2017-03-25
    • 1970-01-01
    • 2013-04-04
    • 1970-01-01
    • 2017-11-08
    • 1970-01-01
    • 2014-05-21
    • 2023-03-23
    • 1970-01-01
    相关资源
    最近更新 更多