雙人在頁控制區域(其中的點全部)的底部的任何地方攻絲暫停從一個視圖控制器到另一個的轉變。雙攻的UIPageViewController - 雙攻牙點區域顯示部分轉換(Xcode中8,夫特3)
例子:
我簡化一個UIPageViewController項目,以證明這一點:
PageViewController.swift
import UIKit
class PageViewController: UIPageViewController, UIPageViewControllerDataSource, UIPageViewControllerDelegate {
var pages: [UIViewController] = [UIViewController]()
override func viewDidLoad() {
super.viewDidLoad()
dataSource = self
delegate = self
pages.append(UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "Page1"))
pages.append(UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "Page2"))
setViewControllers([pages.first!], direction: .forward, animated: true, completion: nil)
}
// This allows the dots to appear on top of the views
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
for view in self.view.subviews {
if view is UIScrollView {
view.frame = UIScreen.main.bounds
} else if view is UIPageControl {
view.backgroundColor = UIColor.clear
}
}
}
func pageViewController(_ pageViewController: UIPageViewController, viewControllerBefore viewController: UIViewController) -> UIViewController? {
let viewControllerIndex = pages.index(of: viewController)
if viewControllerIndex == 1 {
return pages[0]
}
return nil
}
func pageViewController(_ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController? {
let viewControllerIndex = pages.index(of: viewController)
if viewControllerIndex == 0 {
return pages[1]
}
return nil
}
func presentationCount(for pageViewController: UIPageViewController) -> Int {
return pages.count
}
func presentationIndex(for pageViewController: UIPageViewController) -> Int {
return 0
}
}
問題的根源就在於此代碼:
// This allows the dots to appear on top of the views
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
for view in self.view.subviews {
if view is UIScrollView {
view.frame = UIScreen.main.bounds
} else if view is UIPageControl {
view.backgroundColor = UIColor.clear
}
}
當該代碼被刪除不存在部分的過渡,但你現在會看到一個黑色的這也是不希望的。
這是一個常見的解決方案,我發現整個網絡和#2獲得頁面控制(點)上展示的意見頂部而不是在屏幕底部自己的酒吧內。
所以這就是我要找的。一個解決方案:
- 顯示上的意見頂部的點(沒有黑條)
- 沒有問題轉變。
在此先感謝您的幫助!
而不是使用黑客也嘗試'pageControl.isUserInteractionEnabled = FALSE'或'pageControl.isEnabled = FALSE'禁用對您的網頁控制用戶交互。這一行代碼可能是你破解的解決方案。 – Jay