GrandMenu是一个简单且使用方便的菜单工具, 并且提供了一个GrandTableMenu来配套使用,两者配合可以实现类似部分网易新闻的效果
- 菜单标题和颜色,字体,以及下面的Bar可以完全自定义
- 菜单标题和Bar的大小和位置完全是自动分配的
- 可以自动调整表格的大小
- 使用Block来回调菜单的点击事件和Table的滚动事件
Xcode 9.0 and iOS 8.0(Swift3.0 Version)
-
如果你想使用Cocoapods,直接pod 'GrandMenu',再安装即可
-
如果你想使用文件,直接把GrandMenu文件夹下面的所有文件拷贝到项目即可
请参考下面的代码
grandMenu = GrandMenu(frame:CGRect(x: 0, y: 64, width: UIScreen.mainScreen().bounds.size.width, height: 40) , titles: ["First","Second","Third","Fouth","Fifth"]) //init the GrandMenu and assign the menu titles, and also you can assign titles later
grandMenu.arrItemsTitle = ["First","Second","Third","Fouth","Fifth"]
grandMenu?.itemSeletedColor = UIColor.blueColor() //set the menu title color when it's selected
grandMenu?.itemColor = UIColor.greenColor() //set the menu title color when it's not selected
grandMenu?.itemFont = 14//set the menu title font when it's not selected
grandMenu?.itemSelectedFont = 18//set the menu title font when it's selected
grandMenu?.sliderBarHeight = 5//set the menu title slider bar height
grandMenu?.sliderBarLeftRightOffset = 15//set the menu title silder bar left right offset
grandMenu?.selectMenu = {[weak self](item:GrandMenuItem, index:Int) in
self?.grandMenuTable?.contentViewCurrentIndex = index
}
view.addSubview(grandMenu!) // then add the menu
arrControllers = [UIViewController]() //init the viewControllers array
let vc1 = Controller1()
let vc2 = Controller2()
let vc3 = Controller3()
let vc4 = Controller4()
let vc5 = Controller5()
arrControllers?.append(vc1)
arrControllers?.append(vc2)
arrControllers?.append(vc3)
arrControllers?.append(vc4)
arrControllers?.append(vc5) //add the viewcontrollers you want
grandMenuTable = GrandMenuTable(frame: CGRect(x: 0, y: grandMenu!.frame.maxY, width: UIScreen.main.bounds.size.width, height: view.frame.size.height - 104), childViewControllers: arrControllers!, parentViewController: self) //use the arrControllers to init the GrandTable
grandMenuTable?.scrollToIndex = {[weak self](index:Int)in
self?.grandMenu?.selectSlideBarItemAtIndex(index)
}
}
view.addSubview(grandMenuTable!) //add the GrandTable
//in the ViewControllers you added, you must add this code.
override func viewWillLayoutSubviews() { // in the viewControllers you need set table frame, and this is very important
tb?.frame = self.view.bounds
}
参考Demo项目你会更好理解GrandMenu的使用
任何问题箐联系我:[email protected],我会很乐意解决