Ios 如何在Swift中隐藏页面视图中点的背景?

Ios 如何在Swift中隐藏页面视图中点的背景?,ios,xcode,swift,Ios,Xcode,Swift,我目前在删除背景(屏幕底部的条形图)方面遇到了问题,就像他们在这个问题上遇到的一样 然而,发布的解决方案都在Objective-c中。我试着把它翻译成Swift,但没有成功 我还尝试将“UIPageControl.appearance()”更改为cleancolor,但仍然无法工作 有人能提供一些提示吗 谢谢 我的代码在这里: import UIKit class TutorialViewController: UIViewController, UIPageViewControllerDat

我目前在删除背景(屏幕底部的条形图)方面遇到了问题,就像他们在这个问题上遇到的一样

然而,发布的解决方案都在Objective-c中。我试着把它翻译成Swift,但没有成功

我还尝试将“UIPageControl.appearance()”更改为cleancolor,但仍然无法工作

有人能提供一些提示吗

谢谢

我的代码在这里:

import UIKit

class TutorialViewController: UIViewController, UIPageViewControllerDataSource{

var pageViewController: UIPageViewController?
let contentImages = ["Tutorial1.png", "Tutorial2.png","Tutorial3.png"]


override func viewDidLoad() {
    super.viewDidLoad()
    createPageViewController()
    setupPageControl()

    // Do any additional setup after loading the view.
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

    //supporting functions
private func createPageViewController() {

    let pageController = self.storyboard!.instantiateViewControllerWithIdentifier("PageController") as! UIPageViewController
    pageController.dataSource = self

    if contentImages.count > 0 {
        let firstController = getItemController(0)!
        let startingViewControllers: NSArray = [firstController]
        pageController.setViewControllers(startingViewControllers as [AnyObject], direction: UIPageViewControllerNavigationDirection.Forward, animated: false, completion: nil)
    }

    pageViewController = pageController
    addChildViewController(pageViewController!)
    self.view.addSubview(pageViewController!.view)
    pageViewController!.didMoveToParentViewController(self)
}

private func setupPageControl() {
    let appearance = UIPageControl.appearance()
    appearance.pageIndicatorTintColor = UIColor.grayColor()
    appearance.currentPageIndicatorTintColor = UIColor.whiteColor()
    appearance.backgroundColor = UIColor.clearColor()
}

// MARK: - UIPageViewControllerDataSource

func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? {

    let itemController = viewController as! PageItemViewController

    if itemController.itemIndex > 0 {
        return getItemController(itemController.itemIndex-1)
    }

    return nil
}

func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController? {

    let itemController = viewController as! PageItemViewController

    if itemController.itemIndex+1 < contentImages.count {
        return getItemController(itemController.itemIndex+1)
    }

    return nil
}

private func getItemController(itemIndex: Int) -> PageItemViewController? {

    if itemIndex < contentImages.count {
        let pageItemController = self.storyboard!.instantiateViewControllerWithIdentifier("TutorialItemController")as! PageItemViewController
        pageItemController.itemIndex = itemIndex
        pageItemController.imageName = contentImages[itemIndex]
        return pageItemController
    }

    return nil
}

// MARK: - Page Indicator

func presentationCountForPageViewController(pageViewController: UIPageViewController) -> Int {
    return contentImages.count
}

func presentationIndexForPageViewController(pageViewController: UIPageViewController) -> Int {
    return 0
}

override func prefersStatusBarHidden() -> Bool {

    return true;
}

}
导入UIKit
类TutorialViewController:UIViewController、UIPageViewControllerDataSource{
var pageViewController:UIPageViewController?
让contentImages=[“Tutorial1.png”、“Tutorial2.png”、“Tutorial3.png”]
重写func viewDidLoad(){
super.viewDidLoad()
createPageViewController()
setupPageControl()
//加载视图后执行任何其他设置。
}
重写函数didReceiveMemoryWarning(){
超级。我收到了记忆警告()
//处置所有可以重新创建的资源。
}
//辅助功能
私有函数createPageViewController(){
让pageController=self.storyboard!。将EviewController标识符(“pageController”)实例化为!UIPageViewController
pageController.dataSource=self
如果contentImages.count>0{
让firstController=getItemController(0)!
让StartingViewController:NSArray=[firstController]
pageController.SetViewController(将ViewController作为[AnyObject]启动,方向:UIPageViewControllerNavigationDirection.Forward,动画:false,完成:nil)
}
pageViewController=pageController
addChildViewController(pageViewController!)
self.view.addSubview(pageViewController!.view)
pageViewController!.didMoveToParentViewController(自身)
}
专用函数setupPageControl(){
让外观=UIPageControl.appearance()
外观.pageIndicatorTintColor=UIColor.grayColor()
外观.currentPageIndicatorTintColor=UIColor.whiteColor()
appearance.backgroundColor=UIColor.clearColor()
}
//标记:-UIPageViewControllerDataSource
func pageViewController(pageViewController:UIPageViewController,viewController预览控制器viewController:UIViewController)->UIViewController{
设itemController=viewController为!PageItemViewController
如果itemController.itemIndex>0{
返回getItemController(itemController.itemIndex-1)
}
归零
}
func pageViewController(pageViewController:UIPageViewController,viewControllerAfterViewController:UIViewController)->UIViewController{
设itemController=viewController为!PageItemViewController
如果itemController.itemIndex+1PageItemViewController{
如果itemIndexInt{
返回contentImages.count
}
func PresentationIndexFormageViewController(pageViewController:UIPageViewController)->Int{
返回0
}
重写函数prefersStatusBarHidden()->Bool{
返回true;
}
}

尝试删除此方法

func presentationIndexForPageViewController(pageViewController: UIPageViewController) -> Int {
return 0
}

在swift中它对我很好

尝试删除此方法

func presentationIndexForPageViewController(pageViewController: UIPageViewController) -> Int {
return 0
}

在swift中它对我来说很好

如果您查看您提供的示例链接,我发现了一些差异,您可以在实现中帮助您

1.//我们需要通过使框架更高(+37)来覆盖所有控件

-在PageViewController中添加了额外的高度,以便隐藏默认的页面控制器底部栏

//将常用控件置于前景(由于帧较高,因此它们被隐藏)

2.

[self.view bringSubviewToFront:self.pcDots];
诀窍是将页面控件放在前景底部。放置UIPageControl并在UIPageController的委托方法中设置其值


如果您需要UIPageController的完整演示实现,可以在此处查看教程:


在本教程结束时,您将获得所需的自定义UIPageController,如果您希望在底部设置页面控件,请在脚本中的TutorialViewController中更改UIPageControl的位置,如果您选中了提供的示例链接,我发现了一些差异,您可以帮助您实现

1.//我们需要通过使框架更高(+37)来覆盖所有控件

-在PageViewController中添加了额外的高度,以便隐藏默认的页面控制器底部栏

//将常用控件置于前景(由于帧较高,因此它们被隐藏)

2.

[self.view bringSubviewToFront:self.pcDots];
诀窍是将页面控件放在前景底部。放置UIPageControl并在UIPageController的委托方法中设置其值


如果您需要UIPageController的完整演示实现,可以在此处查看教程:

在本教程结束时,如果要在底部设置页面控件,您将获得所需的自定义UIPageController
更改UIPageControl在storyboard中TutorialViewController
中的位置