上班期间闲来无事,想摸鱼看番但是又害怕项目经理的制裁,那不如给自己找点事情做。 于是开始封装了自己的第一个组件。

简介

一个简单的基于swift实现的顶部滚动标签栏,提供了四种不同的样式选择。

安装

可以直接通过我的github项目地址下载源码导入工程,也可以通过 CocoaPods进行安装。cocoapods的安装方法:

在你的podfile文件里加入pod 'MHTabView',然后执行pod install指令就可以开始愉快的使用了。

使用

通过以下两种方式初始化你的tabview
注意titles和views数组长度需要相同

  1. convenience init
let tabview = MHTabView.init(withTitles: titles, pageViews: views)
  1. init and set titles and pageviews
let tabview = MHTabView.init()
tabview.setTitlesAndPageViews(titles: titles, pageViews: views)

示例

可以去我的github项目地址查看示例源码并下载

  • unscrollable

tabview.titleStyle = .unscrollable

unscrollable

  • scrollable

tabview.titleStyle = .scrollable

scrollable

  • autoscrollable

tabview.titleStyle = .autoScrollable

autoscrollable

  • autoUnscrollable

tabview.titleStyle = .autoUnscrollable

autoUnscrollable

  • other

  1. change color
tabview.defaultColor = .blue
tabview.selectedColor = .red
  1. change width for scrollable style
tabview.style = .scrollable
tabview.tabWidth = 150
  1. usage of delegate
protocol MHTabViewDelegate {
  /**停止滚动后的回调函数(index, scrollview) -> (当前滚动到的位置, scrollView属性 )*/
  func MHTabViewDidEndDecelerating(_ index: Int, _ scrollview: UIScrollView)
}

delegate
4. other APIs

setSelectedFont(_ font: UIFont)//修改选中按钮的字体

setUnSelectedFont(_ font: UIFont)//修改未选中按钮的字体

setIndicatorHeight(_ height: CGFloat)//修改指示器高度

setIndicatorWidth(_ width: CGFloat)//修改指示器宽度
 
setDefaultPage(withIndex index: Int)//设置默认选中的页面

setAnimateDuration(_ duration: TimeInterval)//设置动画过渡时间

尾声

一开始看上去觉得很简单的一个小组件,没想到自己实现起来遇到了挺多困难,也许这就是一个无名小程序员的悲伤吧,成长之路还很长啊!
尽管一路跌跌撞撞,最终还是完成了,成就感爆棚 感觉要开始膨胀了 。哈哈,程序员道路弯又长,还是要戒骄戒躁继续前进。
欢迎各位大佬们提出问题和建议,也可以到github项目地址里发issue和pull request,我会及时查看并吸取意见。

作者信息

邮箱: 739296759@qq.com
github首页: https://github.com/feaskters/
欢迎交流技术知识

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐