YSCategoryView 1.1.5

YSCategoryView 1.1.5

Maintained by ys.



  • By
  • ys

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里面即为使用的示例代码