Segmentio
Swift 编写的动画上下分割控制。
需求
- Xcode 10
- iOS 8.x+
- Swift 5.0
安装
CocoaPods
use_frameworks!
pod 'Segmentio'
CocoaPods v1.1.0 或更新版本要求
Carthage
github "Yalantis/Segmentio"
使用说明
Segmentio
模块
导入 import Segmentio
初始化
您可以从代码中初始化一个 Segmentio
实例
var segmentioView: Segmentio!
let segmentioViewRect = CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: 125)
segmentioView = Segmentio(frame: segmentioViewRect)
view.addSubview(segmentioView)
或者
在您的 .storyboard 或 .xib 中添加一个 UIView
实例,设置 Segmentio
类并连接 IBOutlet
@IBOutlet weak var segmentioView: Segmentio!
Segmentio
配置 segmentioView.setup(
content: [SegmentioItem],
style: SegmentioStyle,
options: SegmentioOptions?
)
要使用默认选项,只需将 nil
传递给 options
参数。
segmentioView.setup(
content: [SegmentioItem],
style: SegmentioStyle,
options: nil
)
配置项
为了设置项,您需要创建一个 SegmentioItem
实例数组
var content = [SegmentioItem]()
let tornadoItem = SegmentioItem(
title: "Tornado",
image: UIImage(named: "tornado")
)
content.append(tornadoItem)
处理选择
您可以手动指定选中项
segmentioView.selectedSegmentioIndex = 0
处理回调
segmentioView.valueDidChange = { segmentio, segmentIndex in
print("Selected item: ", segmentIndex)
}
自定义
Segmentio
可以通过传递 SegmentioOptions
结构体实例进行自定义
SegmentioOptions(
backgroundColor: .white,
segmentPosition: SegmentioPosition,
scrollEnabled: true,
indicatorOptions: SegmentioIndicatorOptions,
horizontalSeparatorOptions: SegmentioHorizontalSeparatorOptions,
verticalSeparatorOptions: SegmentioVerticalSeparatorOptions,
imageContentMode: .center,
labelTextAlignment: .center,
segmentStates: SegmentioStates
)
段宽度依赖于 SegmentioPosition
枚举。宽度可以是固定的,按最大可见项目计算,也可以是动态的,根据段的内容尺寸计算
enum SegmentioPosition {
case dynamic
case fixed(maxVisibleItems: Int)
}
可以通过传递 SegmentioIndicatorOptions
实例来自定义选择指示器
SegmentioIndicatorOptions(
type: .bottom,
ratio: 1,
height: 5,
color: .orange
)
水平边界可以通过传递 SegmentioHorizontalSeparatorOptions
实例来自定义
SegmentioHorizontalSeparatorOptions(
type: SegmentioHorizontalSeparatorType.topAndBottom, // Top, Bottom, TopAndBottom
height: 1,
color: .gray
)
段之间的分隔符可以通过传递 SegmentioVerticalSeparatorOptions
实例来自定义
SegmentioVerticalSeparatorOptions(
ratio: 0.6, // from 0.1 to 1
color: .gray
)
为了设置 SegmentioStates
,您需要创建一组 SegmentioState
实例
SegmentioStates(
defaultState: SegmentioState(
backgroundColor: .clear,
titleFont: UIFont.systemFont(ofSize: UIFont.smallSystemFontSize),
titleTextColor: .black
),
selectedState: SegmentioState(
backgroundColor: .orange,
titleFont: UIFont.systemFont(ofSize: UIFont.smallSystemFontSize),
titleTextColor: .white
),
highlightedState: SegmentioState(
backgroundColor: UIColor.lightGray.withAlphaComponent(0.6),
titleFont: UIFont.boldSystemFont(ofSize: UIFont.smallSystemFontSize),
titleTextColor: .black
)
)
告诉我们!
如果您在项目中使用了我们的组件,我们将会非常高兴。只需发送电子邮件到 [email protected] 即可。如果您对动画有任何问题或建议,请告诉我们。
附言。我们将发布更多精彩内容,包括代码和如何将 iOS(Android)的 UI 做得更好的教程。请保持关注!
许可证
MIT 许可证 (MIT)
版权所有 © 2019 Yalantis
以下条件,授予任何获得本软件及其相关文档文件(“软件”)副本的任何人免费使用该软件的权利,包括但不限于以下权利:使用、复制、修改、合并、出版、分发、再许可和/或销售该软件副本,并允许软件提供方使用该软件。
以上版权声明和此许可声明应包含在软件的所有副本或主要部分中。
本软件按“现状”提供,不提供任何明示或隐含的保证,包括但不限于适用性、特定用途的适用性和非侵权性保证。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任负责,无论是因合同、侵权或其他原因,也不论是由于软件、使用或其他与软件相关的操作而产生的。