WeePager 0.1.0

WeePager 0.1.0

测试已测试
语言语言 SwiftSwift
许可协议 MIT
发布最新发布2020年2月
SPM支持 SPM

Federico Gentile 维护。



WeePager 0.1.0

  • Federico Gentile

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.