CKSlideMenu 介紹
2017.8.21
最近把這個滾動導(dǎo)航做了一次優(yōu)化,想做到更多的使用場景。
添加了固定模式、下標及title細節(jié)的自定義。
具體使用見下文或者demo
? 開始練手swift,閑來無事,看到半塘的滾動菜單的動畫還是蠻有意思的。所以寫了這個一個東西,效果如下:

SlideMneu01.gif

SlideMenu02.gif
當數(shù)組元素個數(shù)較少時,會固定頂部的滾動視圖,重新布局位置
改為用戶控制是否固定頂部的滾動視圖,這樣似乎更加人性化。
/// 是否是固定型菜單(不需要修正滾動)
var isFixed:Bool = false

SlideMenu03.gif
1.主要屬性
//MARK: - 成員變量
/// 是否是固定型菜單(不需要修正滾動)
var isFixed:Bool = false
/// 是否懶加載子控制器 (有些用戶想要滾動到對應(yīng)視圖才執(zhí)行加載動作,所以添加了這個屬性)
var lazyLoad:Bool = true
/// 選中顏色 (在不設(shè)置下標顏色的時候,會此為下標的顏色)
var selectedColor:UIColor = UIColor.red
/// 未選中顏色
var unSelectedColor:UIColor = UIColor.black
/// 下標寬度 (在titleStyle 為normal時有效)
var indicatorWidth:CGFloat = 30
/// 下標高度
var indicatorHeight:CGFloat = 2
/// 下標距離底部距離
var bottomPadding:CGFloat = 0
//伸縮動畫的偏移量 在indicatorStyle = stretch是生效
var indicatorAnimatePadding:CGFloat = 8.0
/// 標題字體
var font:UIFont = UIFont.systemFont(ofSize: 13)
/// 下標樣式
var indicatorStyle:SlideMenuIndicatorStyle = .normal
/// 標題樣式
var titleStyle:SlideMenuTitleStyle = .normal
///bodyScrollView的父視圖,默認為SlideMenu的父視圖
weak var bodySuperView:UIView?
///bodyScrollView的frame
var bodyFrame:CGRect = CGRect.zero
2.樣式
enum SlideMenuTitleStyle {
case normal //默認
case gradient //顏色漸變
case transfrom //放大
}
enum SlideMenuIndicatorStyle {
case normal //常規(guī)
case followText //跟隨文本長度
case stretch //伸縮 (推薦半塘效果)
}
3.使用方法
let titles = ["今天","速度100","是啊","測試機","水電","今天","速度","是啊","今天","速度","是啊"]
var arr:Array<UIViewController> = []
for _ in 0 ..< titles.count {
let vc = CKChildViewController()
self.addChildViewController(vc)
arr.append(vc)
}
let slideMenu = CKSlideMenu(frame: CGRect(x:0,y:64,width:view.frame.width,height:40), titles:titles, childControllers:arr)
slideMenu.titleStyle = .gradient
slideMenu.indicatorStyle = .followText
slideMenu.unSelectedColor = UIColor.gray
slideMenu.bottomPadding = 4
slideMenu.indicatorHeight = 2
slideMenu.bodySuperView = view
slideMenu.bodyFrame = CGRect.init(x: 0, y: 104, width: view.frame.width, height: view.frame.height - 104)
//slideMenu.font = UIFont.systemFont(ofSize: 12)
view.addSubview(slideMenu!)
上述屬性均可設(shè)置來滿足不同的效果,歡迎指正出現(xiàn)的問題。謝謝~
代碼地址:https://github.com/90ck/CKSlideMenu
<-如不能滿足需求,可聯(lián)系我討論 QQ:907856372->