gpt4 book ai didi

XCode 页面 View Controller : make dots transparent

转载 作者:行者123 更新时间:2023-12-04 12:39:11 25 4
gpt4 key购买 nike

我添加了一个页面 View Controller 和一个 3 页。
我将 Transition Style 设置为 Scroll 并实现了 presentationCountpresentationIndex方法。现在我在 View 底部看到一个带有灰色/白色圆点的黑色条。但是,但我希望 View 转到底部并使点出现在它上面(没有黑色背景。
我怎么做?

这是我的代码:

import UIKit

class FilterViewController: UIPageViewController, UIPageViewControllerDataSource {



override func viewDidLoad() {
super.viewDidLoad()
dataSource = self

if let firstViewController = orderedViewControllers.first {
setViewControllers([firstViewController],
direction: .forward,
animated: true,
completion: nil)
}


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

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

private(set) lazy var orderedViewControllers: [UIViewController] = {
return [self.newViewController(category: "first"),
self.newViewController(category: "second"),
self.newViewController(category: "third")]
}()

private func newViewController(category: String) -> UIViewController {
return UIStoryboard(name: "Main", bundle: nil) .
instantiateViewController(withIdentifier: "\(category)ViewController")
}

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

guard let viewControllerIndex = orderedViewControllers.index(of: viewController) else {
return nil
}

let previousIndex = viewControllerIndex - 1

guard previousIndex >= 0 else {
return orderedViewControllers.last
}

guard orderedViewControllers.count > previousIndex else {
return nil
}

return orderedViewControllers[previousIndex]
}

func pageViewController(_ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController? {
guard let viewControllerIndex = orderedViewControllers.index(of: viewController) else {
return nil
}

let nextIndex = viewControllerIndex + 1
let orderedViewControllersCount = orderedViewControllers.count

guard orderedViewControllersCount != nextIndex else {
return orderedViewControllers.first
}

guard orderedViewControllersCount > nextIndex else {
return nil
}

return orderedViewControllers[nextIndex]
}

func presentationCount(for pageViewController: UIPageViewController) -> Int {
return orderedViewControllers.count
}

func presentationIndex(for pageViewController: UIPageViewController) -> Int {
guard let firstViewController = viewControllers?.first,
let firstViewControllerIndex = orderedViewControllers.index(of: firstViewController) else {
return 0
}

return firstViewControllerIndex
}


}

page view controller

最佳答案

好的,我自己得到了。如果有人遇到同样的问题,只需覆盖 viewDidLayoutSubviews()页面 View Controller :

override func viewDidLayoutSubviews() {
let v = self.view
let subviews = v?.subviews
if subviews?.count == 2 {
var sv:UIScrollView?
var pc:UIPageControl?
for t in subviews! {
if t is UIScrollView {
sv = t as! UIScrollView
} else {
pc = t as! UIPageControl
}
}
if(sv != nil && pc != nil) {
sv?.frame = (v?.bounds)!
v?.bringSubview(toFront: pc!)
}
}
super.viewDidLayoutSubviews()
}

关于XCode 页面 View Controller : make dots transparent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51557240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com