Segmentio 4.1

Segmentio 4.1

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布上次发布2019年7月
SPM支持 SPM

Yalantis维护。




Segmentio

Platform License Swift 5 Carthage compatible Swift Package Manager

Swift 编写的动画上下分割控制。

Preview

查看dribbble 上的该项目。

需求

  • 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

以下条件,授予任何获得本软件及其相关文档文件(“软件”)副本的任何人免费使用该软件的权利,包括但不限于以下权利:使用、复制、修改、合并、出版、分发、再许可和/或销售该软件副本,并允许软件提供方使用该软件。

以上版权声明和此许可声明应包含在软件的所有副本或主要部分中。

本软件按“现状”提供,不提供任何明示或隐含的保证,包括但不限于适用性、特定用途的适用性和非侵权性保证。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任负责,无论是因合同、侵权或其他原因,也不论是由于软件、使用或其他与软件相关的操作而产生的。