YSCategoryView
滑动分类视图
环境
swift5.0、iOS11.0
使用步骤
1、导入框架
pod 'YSCategoryView'
2、导入命名空间
import YSCategoryView
重要API
// 创建,如果传入内容SV,会监听内容SV的滚动,滚动时有缩放效果,否则没有
// 样式设置,具体样式可以点击头文件查看,每个样式都有注释
let style = YSCategoryViewStyle()
style.identifyerLineSize.width = 0 // 为0表示标识线宽度跟随条目走
style.identifierLineAnimationType = .translation // 平移动画
style.identifierLineAnimationType = .stretch // 拉伸动画
......
public convenience init(titleList:[String],style:style,contentSV:UIScrollView?)
// 重置标题数组,注意,重置之后会发送一个valueChanged事件,头0开始
public func ys_resetTitles(titleList:[String])
// 重设索引,使用场景:内容SV滚动结束后,改变分类视图的选中选项
public func ys_setCurrentIndex(index:Int)
public func ys_setCurrentIndex(title:String)
// 获取当前索引,使用场景:分类视图中点击选项后(即改变选项后),把内容SV的展示内容项做改变
public var ys_currentIndex:Int
public var ys_currentTitle:String
// 如果关联的内容SV先释放,则在释放之前一定要调用,如果本控件先释放,则不用:
public func ys_releaseContentSV()
// 国际化语言适配,注意注意注意,重要的事情说三遍,控制器务必加入以下代码
public func ys_adapterLanguageRTL(languageRTL:Bool)
// 如果国际化语言方向是Right To Left,如阿拉伯语,传true
// 否则,如果国际化语言方向是Left To Right,如:中文、英文,传false
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
// 这里放心调用,不会出现页面显示之后,闪一下的情况
YSCategoryView对象.ys_adapterLanguageRTL(languageRTL: true)
}
重要的事情说三遍,注意注意注意
// 国际化语言适配,注意注意注意,重要的事情说三遍,控制器务必加入以下代码
public func ys_adapterLanguageRTL(languageRTL:Bool)
// 如果国际化语言方向是Right To Left,如阿拉伯语,传true
// 否则,如果国际化语言方向是Left To Right,如:中文、英文,传false
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
// 这里放心调用,不会出现页面显示之后,闪一下的情况
YSCategoryView对象.ys_adapterLanguageRTL(languageRTL: true)
}
// 如果关联的内容SV先释放,则在释放之前一定要调用,如果本控件先释放,则不用:
public func ys_releaseContentSV()
// 小知识点,在swift中:
// 1、如果2个视图是父子关系,父视图先释放,子视图后释放
// 2、如果2个视图是兄弟关系,先添加的先释放,后添加的后释放
// 释放规律,有点类似队列的意思,先进先出
// 所以,先添加此分类视图,再添加与之对应的scrollView,完全没问题,不用调用ys_releaseContentSV
swift视图释放规律
// 父子关系:
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(redV)
redV.addSubview(blueV)
}
deinit:VC
deinit:redView
deinit:blueView
// 兄弟关系:
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(redV)
view.addSubview(blueV)
}
deinit:VC
deinit:redView
deinit:blueView
示例代码
项目git下来后直接运行,ViewController里面即为使用的示例代码