iOS顶部标题滚动条
2017-11-28 本文已影响201人
沈正方
由于最近项目需求需要,需要顶部标题滚动的效果,项目中原有的顶部标题滚动用的是XLPagerTabStrip
,使用第三方框架应对需求变更改起来很复杂,所以自己写了一个顶部滚动的效果。
效果如下:
框架只有四个文件,文件结构如下:
image.png
框架的使用
- 导入以上四个文件到项目中
- 在根控制器中创建
TitleContentView
,并添加到根控制器的View
上 - 在创建
TitleContentView
时,传递标题内容数组[String]
,标题对应关联的控制器数组[ViewController]
,根控制器self
,以及TitleContentView
的frame
即可!!!
项目中需要加入的代码如下:
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let titles = ["iPhone", "iOS", "KobeBryant", "优土视真", "UtoVR", "shenzhengfang", "JustinBieber", "中国", "Taylor Swift"]
var childVCs = [UIViewController]()
for _ in 0..<titles.count {
let vc = UIViewController()
vc.view.backgroundColor = UIColor.randomColor()
childVCs.append(vc)
}
let style = PageStyle()
// 修改外观样式
style.titleViewHeight = 40
let frame = CGRect(x: 0, y: UIApplication.shared.statusBarFrame.size.height, width: self.view.bounds.width, height: self.view.bounds.height - UIApplication.shared.statusBarFrame.size.height)
let titleContentView = TitleContentView(frame: frame, style: style, titles: titles, childVCs: childVCs, parentVC: self)
view.addSubview(titleContentView)
}
}
注意:
-
PageStyle
中的属性用来自定义界面的样式,通过style
拿到对应属性实现样式的修改 - 具体可修改的样式参考文件
PageStyle
let style = PageStyle()
// 修改标题栏的高度
style.titieViewHeight = 100
// 修改标题栏的背景颜色
style.titleViewColor = UIColor.orange
···