滚动时隐藏导航栏的页面菜单
Page menu with Hide navigation bar on Scroll
我想要导航栏扩展中的两个菜单,并在滚动时隐藏导航栏(扩展除外)。
我可以用 PageMenu "PageMenu" and hiding the navigation bar through AMScrollingNavbar
实现菜单
但我现在面临的问题是导航栏隐藏但视图不随导航栏移动
func loadControllers(){
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let topViewController = storyboard.instantiateViewControllerWithIdentifier("TopNewsController") as!
TopNewsController
topViewController.title = "TOP"
controllerArray.append(topViewController)
let briefViewController = storyboard.instantiateViewControllerWithIdentifier("BriefViewController") as!
BriefViewController
briefViewController.title = "BRIEFS"
controllerArray.append(briefViewController)
let videoViewController = storyboard.instantiateViewControllerWithIdentifier("VediosViewController") as!
VediosViewController
videoViewController.title = "VIDEOS"
controllerArray.append(videoViewController)
// Customize menu
parameters = [
.ScrollMenuBackgroundColor(UIColor.navigationBarColor()),
.ViewBackgroundColor(UIColor(red: 20.0/255.0, green: 20.0/255.0, blue: 20.0/255.0, alpha: 1.0)),
.SelectionIndicatorColor(UIColor.whiteColor()),
.BottomMenuHairlineColor(UIColor(red: 70.0/255.0, green: 70.0/255.0, blue: 80.0/255.0, alpha: 1.0)),
.MenuItemFont(UIFont(name: "HelveticaNeue-Bold", size: 14.0)!),
.MenuHeight(expressTribuneUtilities.convertIphone6ToIphone5(48)),
.MenuItemWidth(90.0),
.CenterMenuItems(true)
]
AppDelegate.getInstatnce().nav = self.navigationController as! ScrollingNavigationController
AppDelegate.getInstatnce().nav.scrollingNavbarDelegate = self
// Initialize scroll menu
pageMenu = CAPSPageMenu(viewControllers: controllerArray, frame: CGRectMake(0.0, 64.0, self.view.frame.width, self.view.frame.height), pageMenuOptions: parameters)
self.view.addSubview(pageMenu!.view)
}
从 class 添加到菜单
中调用 Scroll 方法
AppDelegate.getInstatnce().nav.followScrollView(tableMainView, delay: 0.5)
AppDelegate.getInstatnce().nav = self.navigationController as! ScrollingNavigationController
AppDelegate.getInstatnce().nav.scrollingNavbarDelegate = self
将这两行更改为这样它不会起作用,因为您正在为其他实例而不是导航设置委托。
let navController = AppDelegate.getInstatnce().window?.rootViewController as! ScrollingNavigationController
navController.scrollingNavbarDelegate = self
在您的控制器中实施委托并设置视图的原点w.r.t您的
滚动视图。
我想要导航栏扩展中的两个菜单,并在滚动时隐藏导航栏(扩展除外)。
我可以用 PageMenu "PageMenu" and hiding the navigation bar through AMScrollingNavbar
实现菜单但我现在面临的问题是导航栏隐藏但视图不随导航栏移动
func loadControllers(){
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let topViewController = storyboard.instantiateViewControllerWithIdentifier("TopNewsController") as!
TopNewsController
topViewController.title = "TOP"
controllerArray.append(topViewController)
let briefViewController = storyboard.instantiateViewControllerWithIdentifier("BriefViewController") as!
BriefViewController
briefViewController.title = "BRIEFS"
controllerArray.append(briefViewController)
let videoViewController = storyboard.instantiateViewControllerWithIdentifier("VediosViewController") as!
VediosViewController
videoViewController.title = "VIDEOS"
controllerArray.append(videoViewController)
// Customize menu
parameters = [
.ScrollMenuBackgroundColor(UIColor.navigationBarColor()),
.ViewBackgroundColor(UIColor(red: 20.0/255.0, green: 20.0/255.0, blue: 20.0/255.0, alpha: 1.0)),
.SelectionIndicatorColor(UIColor.whiteColor()),
.BottomMenuHairlineColor(UIColor(red: 70.0/255.0, green: 70.0/255.0, blue: 80.0/255.0, alpha: 1.0)),
.MenuItemFont(UIFont(name: "HelveticaNeue-Bold", size: 14.0)!),
.MenuHeight(expressTribuneUtilities.convertIphone6ToIphone5(48)),
.MenuItemWidth(90.0),
.CenterMenuItems(true)
]
AppDelegate.getInstatnce().nav = self.navigationController as! ScrollingNavigationController
AppDelegate.getInstatnce().nav.scrollingNavbarDelegate = self
// Initialize scroll menu
pageMenu = CAPSPageMenu(viewControllers: controllerArray, frame: CGRectMake(0.0, 64.0, self.view.frame.width, self.view.frame.height), pageMenuOptions: parameters)
self.view.addSubview(pageMenu!.view)
}
从 class 添加到菜单
中调用 Scroll 方法 AppDelegate.getInstatnce().nav.followScrollView(tableMainView, delay: 0.5)
AppDelegate.getInstatnce().nav = self.navigationController as! ScrollingNavigationController
AppDelegate.getInstatnce().nav.scrollingNavbarDelegate = self
将这两行更改为这样它不会起作用,因为您正在为其他实例而不是导航设置委托。
let navController = AppDelegate.getInstatnce().window?.rootViewController as! ScrollingNavigationController
navController.scrollingNavbarDelegate = self
在您的控制器中实施委托并设置视图的原点w.r.t您的 滚动视图。