WeePager
WeePager 是一款简单、有趣且完全可定制的 iOS 分页器。哇!
安装
使用 Cocoapods
Swift 5
use_frameworks!
pod 'WeePager'
Swift 4
use_frameworks!
pod 'WeePager', :git => 'https://github.com/FedeGens/WeePager.git', :branch => 'swift4'
或者,您还可以直接从 "WeePager" 文件夹导入类。
要求
- iOS 8.0+
- Swift 4.0+
如何使用
初始化 WeePager
故事板
- 在您的 UIViewController 中拖拽一个UIView
- 将 WeePager 设置为您的 View 类
- 在您的 UIViewController 中连接一个出口
以编程方式
let yourWeePager = WeePager()
yourWeePager.frame = CGRect(x: 0, y: 0, width: yourWidth, height: yourHeight)
self.view.addsubview(yourWeePager)
设置您的页面
var vcArr = [UIViewController]()
for i in 0...20 {
let vc = UIViewController()
vc.title = "page " + String(i)
vcArr.append(vc)
}
yourWeePager.set(viewControllers: [UIViewController()], titles: nil, images: nil)
创建一个 UIViewController 数组 并调用 "set" 方法来设置您的页面!页面标题从 UIViewController().title 获取。如果您愿意,可以创建一个 String 数组 并将其作为 "titles" 参数传递,或者使用 UIImage 数组 作为 "images" 参数来设置图片而不是文本。
很简单,不是吗? ;D
定制
到这里!我们只用几行代码就完全初始化了我们的 pager。现在?让它个性化和定制!
我们可以修改很多属性来定制我们的 WeePager。让我们来探索它们!
loadAllPages
var loadAllPages: Bool = true
在初始化 WeePager 之前加载所有页面
pagesOffLimit
var pagesOffLimit : Int = 5
如果 loadAllPages 是 false,则在运行时加载指定数量的页面(推荐:设置 loadAllPages 为 true 以获得更好的性能)
设置初始翻页器页面
var initialPage : Int = 0
设置初始WeePager页面
animateMenuSelectionScroll
var animateMenuSelectionScroll : Bool = true
动画菜单选择滚动
menuHeight
var menuHeight : CGFloat = 50
设置菜单高度
menuPosition
var menuPosition : menuPosition = .top
设置菜单位置。可以是 .top 或 .bottom
menuPosition
var menuBackgroundColor : UIColor = .white
设置菜单背景颜色
menuInset
var menuInset : CGFloat = 32
设置菜单元素与左右边框的距离
separatorHeight
var separatorHeight : CGFloat = 0
设置菜单分割线高度
分隔线颜色
var separatorColor : UIColor = .black
设置菜单分隔线颜色
分隔线内嵌
var separatorInset : CGFloat = 0
设置菜单分隔线距离左右边框的距离
分隔线上边距
var separatorMarginTop : CGFloat = 0
设置菜单分隔线距离顶部元素的距离
分隔线下边距
var separatorMarginBottom : CGFloat = 0
设置菜单分隔线距离底部元素的距离
项目最大行数
var itemMaxLines : Int = 1
设置标题必须拥有的最大行数
项目最小宽度
var itemMinWidth : CGFloat = 50
设置菜单项必须具有的最小宽度
项目最大宽度
var itemMaxWidth : CGFloat = 150
设置菜单项必须具有的最大宽度
itemInset
var itemInset : CGFloat = 16
设置项目之间的距离
itemBoldSelected
var itemBoldSelected : Bool = true
设置是否选择菜单项目文本加粗
itemCanColor
var itemCanColor : Bool = true
设置选择的菜单项目是否可更改颜色
itemColor
var itemColor : UIColor = .gray
设置菜单项颜色
itemSelectedColor
var itemSelectedColor : UIColor = .black
设置菜单项选择颜色
itemFontSize
var itemFontSize : CGFloat = 17
设置菜单项字体大小
indicatorView
var indicatorView : UIView = UIView()
为您的选择指示器设置自定义视图
指示颜色
var indicatorColor : UIColor = .black
设置选择指示颜色
指示宽度动画
var indicatorWidthAnimated : Bool = true
设置选择指示宽度是否动画(如果想要设置 指示宽度 请设置为 false)
指示宽度
var indicatorWidth : CGFloat = 50
设置选择指示宽度
指示高度
var indicatorHeight : CGFloat = 3
设置选择指示高度
指示圆角
var indicatorCornerRadius : CGFloat = 2
设置选择指示圆角
指示对齐
var indicatorAlign : indicatorAlignment = .bottom
设置选择指示对齐。可以是 .top .middle .bottom
指示透明度
var indicatorAlpha : CGFloat = 1.0
设置选择指示透明度
自定义示例
您可以通过编程方式或直接从Storyboard轻松更改WeePager参数。
let myWeePager = WeePager()
myWeePager.menuHeight = 40
myWeePager.separatorHeight = 1
myWeePager.separatorColor = .lightGray
myWeePager.separatorInset = 16
myWeePager.itemFontSize = 15
myWeePager.indicatorAlign = .middle
myWeePager.indicatorHeight = 30
myWeePager.indicatorAlpha = 0.3
享受吧!;D
使用WeePager的应用
如果您使用这个库,请联系我,我将将其添加到下面的列表中。
开发者
Federico Gentile - [email protected]
许可
The MIT License (MIT)
Copyright (c) 2016 Federico Gentile
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.