我正在为我的个人演练使用BWWalkthrough库。它的实现非常简单,但我对 BWWalkthroughViewController 有一个错误:我不会使用情节提要来创建这个主控制器,所以我通过代码创建了我的自定义视图,然后在 BWWalkthroughViewController 的 viewDidLoad 中设置了视图和 pageControl。其余代码与 github 存储库中的示例相同。
也就是 BWWalkthroughViewController 的 viewDidLoad:
override func viewDidLoad() {
super.viewDidLoad()
let welcomeview: WelcomeView = WelcomeView() // my custom view
view = welcomeview
self.pageControl = welcomeview.pageControl
...
}
并且,因为它是第一个视图,所以 rootViewController 设置为 BWWalkthroughViewController 并修改了 viewDidLoad。所以我有一个函数可以在 AppDelegate.swift 中设置这个演练:
func showWelcomeView() -> BWWalkthroughViewController{
let storyboard = UIStoryboard(name: "Welcome", bundle: nil)
let walkthrough: BWWalkthroughViewController = BWWalkthroughViewController()
let page_zero = storyboard.instantiateViewControllerWithIdentifier("walk_0") as! UIViewController
let page_one = storyboard.instantiateViewControllerWithIdentifier("walk_1") as! UIViewController
let page_two = storyboard.instantiateViewControllerWithIdentifier("walk_2") as! UIViewController
let page_three = storyboard.instantiateViewControllerWithIdentifier("walk_3") as! UIViewController
let page_four = storyboard.instantiateViewControllerWithIdentifier("walk_4") as! UIViewController
walkthrough.delegate = self
walkthrough.addViewController(page_zero)
walkthrough.addViewController(page_one)
walkthrough.addViewController(page_two)
walkthrough.addViewController(page_three)
walkthrough.addViewController(page_four)
return walkthrough
}
我在这里使用该功能:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
self.window?.rootViewController = showWelcomeView() // func usedhere
return true
}
该应用程序运行没有错误。我可以看到我的自定义视图和所有 4 个子视图(walk_0 ... walk_4),我可以滑动它们但不能正确滑动:可滚动是免费的,并且不会在每一页上停止。
所以...我的自定义视图错过了一些步骤?请帮帮我!
这是我的 iPhone 的屏幕截图,滚动位于 2 个子视图之间: