0 Swift - PageControl di chuyển các khung nhìn của UIPageViewCont kiểm

câu hỏi được tạo ra tại Wed, May 8, 2019 12:00 AM

Tôi hiện đang cố gắng thêm chỉ báo trang (PageControl) vào UIPageViewController. Duyệt web tôi phát hiện ra rằng bằng cách thêm presentationCountpresentationIndex, chỉ báo sẽ tự động xuất hiện.

Để thay đổi màu tôi đã thử:

let color = UIColor(red: 24/255, green: 90/255, blue: 189/255, alpha: 1)

let appearance = UIPageControl.appearance(whenContainedInInstancesOf: [UIPageViewController.self])
appearance.pageIndicatorTintColor = UIColor.groupTableViewBackground
appearance.currentPageIndicatorTintColor = color

Mọi thứ đều hoạt động tốt nhưng bằng cách nào đó, chế độ xem được di chuyển lên trên các chỉ báo và nền đen phía sau các chấm (có thể do chế độ xem đang được di chuyển) xuất hiện.


Mã đầy đủ:

import UIKit

class LeasingTutorialViewController: UIPageViewController, UIPageViewControllerDataSource  {

    var pageControl = UIPageControl()
    var scrollView = UIScrollView()

    lazy var viewControllerList:[UIViewController] = {

        let sb = UIStoryboard(name: "Main", bundle: nil)

        let vc1 = sb.instantiateViewController(withIdentifier: "leasingPageOne")
        let vc2 = sb.instantiateViewController(withIdentifier: "leasingPageTwo")

        return [vc1, vc2]
    }()

    override func viewDidLoad() {
        super.viewDidLoad()
        self.dataSource = self
        changeIndicators()
        if let firstViewController = viewControllerList.first as? LeasingPageOneViewController {
            self.setViewControllers([firstViewController], direction: .forward, animated: true, completion: nil)
        }
    }

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

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

    func changeIndicators() {
        let color = UIColor(red: 24/255, green: 90/255, blue: 189/255, alpha: 1)

        let appearance = UIPageControl.appearance(whenContainedInInstancesOf: [UIPageViewController.self])
        appearance.pageIndicatorTintColor = UIColor.groupTableViewBackground
        appearance.currentPageIndicatorTintColor = color
    }

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

        guard let vcIndex = viewControllerList.firstIndex(of: viewController) else { return nil }

        let previousIndex = vcIndex - 1
        guard previousIndex >= 0 else { return nil }

        guard viewControllerList.count > previousIndex else { return nil }

        return viewControllerList[previousIndex]
    }

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

        guard let vcIndex = viewControllerList.firstIndex(of: viewController) else { return nil }

        let nextIndex = vcIndex + 1

        guard viewControllerList.count != nextIndex else { return nil }

        guard viewControllerList.count > nextIndex else { return nil }

        return viewControllerList[nextIndex]
    }
}
    
0
  1. pageControl mặc định ("dấu chấm") nằm ở cuối trangView, kéo dài toàn bộ chiều rộng, với nền đen. Nếu bạn muốn nó trông và /hoặc được định vị khác nhau, bạn cần sử dụng một pageControl riêng. Dưới đây là một ví dụ: spin.atomicobject.com/2016/02/11 /di chuyển-uipageview điều khiển-chấm
    2019-05-08 17: 44: 45Z
0 Câu trả lời                              0                         
nguồn đặt đây