JNSegmentedControl 1.0.6

JNSegmentedControl 1.0.6

Jayel ZaghmouttMohammad Nabulsi 维护。



  • Jayel Zaghmoutt、Mohammad Nabulsi 和 Mohammad Ihmouda

JNSegmentedControl

CI Status Version License Platform

JNSegmentedControl 是一个使用 Swift 编写的易于使用的,带有动画的 iOS 分段控件。
JNSegmentedControl 支持以下三种主要的分段样式:仅文本、仅图片、带有图片的文本(在文本下、上、前和后)。

预览

需求

  • Xcode 9
  • iOS 9.0+
  • Swift 4.2+

安装

JNSegmentedControl 通过 CocoaPods 提供。要安装它,只需在 Podfile 中添加以下行

pod 'JNSegmentedControl'

用法

  • 导入 JNSegmentedControl 模块
import JNSegmentedControl
  • 初始化

    • 场景板:您可以通过手动方式将 UIView 实例添加到 Xib 中,设置 'JNSegmentedControl' 类并连接 @IBOutlet 引用。

    • 编程方式:以编程方式初始化 ‘JNSegmentedControl’ 的 UIView 实例。

        let segmentedControlView = JNSegmentedCollectionView()
        self.view.addSubview(segmentedControlView)
  • 设置

    • JNSegmentedControl 设置
        self.segmentedControlView.setup(
            items: [NSAttributedString],
            selectedItems: [NSAttributedString],
            options: JNSegmentedCollectionOptions(),
            badgeCounts: [Int]
        )

    要使用默认选项,可以将选项参数传递为 (nil) 值。

        self.segmentedControlView.setup(
            items: [NSAttributedString],
            selectedItems: [NSAttributedString],
            options: nil,
            badgeCounts: []
        )
    • 配置项目

    分段控件的项目和选中项目是一个 NSAttributedString 数组。为了设置项目,您需要提供一个 [NSAttributedString] 的实例。

    • 默认项目

          var items = [NSAttributedString]()
          let item  = NSAttributedString(string: “Default Item", attributes: [])
          items.append(item)
    • 选中项目

          var items = [NSAttributedString]()
          let item  = NSAttributedString(string: “Selected Item", attributes: [])
          items.append(item)
  • 处理回调

        self.segmentedControlView.didSelectItem = { segment in
            print("Selected item: ", segment)
        }
  • 选项自定义

    • backgroundColor:分段控制背景颜色。
    • itemOptionType:从 JNSegmentedCollectionItemOptionType 枚举中选择值。
    • layoutType:从 JNSegmentedCollectionLayoutType 枚举中选择值。
    • verticalSeparatorOptions:作为段之间的垂直分隔符的 JNSegmentedCollectionItemVerticalSeparatorOptions 结构的实例。
    • scrollEnabled:分段控件启用滚动。
    • contentItemLayoutMargins:从左侧和右侧的内容项目布局边距。
        JNSegmentedCollectionOptions(
            backgroundColor: UIColor.white,
            itemOptionType: JNSegmentedCollectionItemOptionType, 
            layoutType: JNSegmentedCollectionLayoutType.dynamic, 
            verticalSeparatorOptions: JNSegmentedCollectionItemVerticalSeparatorOptions? = nil,
            scrollEnabled: true,
            contentItemLayoutMargins: 10.0
        )
  • JNSegmented Collection Item Option Type

    分段控件项目有两种布局样式

    • single(option: JNSegmentedCollectionItemOptions): 所有项目的单个选项。
    • multiple(options: [JNSegmentedCollectionItemOptions]): 所有项目的多个选项。
        enum  JNSegmentedCollectionItemOptionType {
            case single(option: JNSegmentedCollectionItemOptions) 
            case multiple(options: [JNSegmentedCollectionItemOptions]) 
        }
  • JNSegmented Collection Item Options

    分段控件具有配置每个项的能力,以下是一些设置

    • CornerRadius: 容器视图的圆角半径。
    • BackgroundColor: 容器视图的背景颜色。
    • SelectedBackgroundColor: 容器视图的选中背景颜色。
    • BadgeBackgroundColor: 徽章计数的背景颜色。
    • SelectedBadgeBackgroundColor: 选中徽章计数的背景颜色。
    • BadgeFont: 徽章计数的字体。
    • SelectedBadgeFont: 选中徽章计数的字体。
    • BadgeTextColor: 徽章计数的文本颜色。
    • SelectedBadgeTextColor: 选中徽章计数的文本颜色。
        JNSegmentedCollectionItemOptions(cornerRadius: 10.0, 
                backgroundColor: #colorLiteral(red: 0.456212461, green: 0.7545028329, blue: 0.8568375707, alpha: 1),
                selectedBackgroundColor: #colorLiteral(red: 0.1984777451, green: 0.7956866622, blue: 1, alpha: 1),
                badgeBackgroundColor: .white, 
                selectedBadgeBackgroundColor: .white,
                badgeFont: UIFont.systemFont(ofSize: 16.0), 
                selectedBadgeFont: UIFont.systemFont(ofSize: 16.0), 
                badgeTextColor: .gray, selectedBadgeTextColor: .gray)
  • JNSegmented Collection Layout Type

    分段控件有两种项目布局样式

    • Dynamic: 每个项目的宽度将根据其内容而变化。
    • Fixed: 每个项目的宽度将根据最大可见项目固定。
        enum  JNSegmentedCollectionLayoutType {
            case dynamic
            case fixed(maxVisibleItems: Int)
        }
  • JNSegmented Vertical Separator Options

    分段控件具有显示项目之间分隔线的功能,以下是一些设置

    • HeigthRatio: 分隔视图高度与集合视图高度的比例,最大值为 1,最小值为 0。
    • Width: 分隔视图的宽度。
    • Color: 分隔视图的背景颜色。
        JNSegmentedCollectionItemVerticalSeparatorOptions (
            heigthRatio: 0.3, 
            width: 1.0,
            color: UIColor.blue
        )

例子

要运行示例项目,请克隆存储库,然后首先从 Example 目录运行 pod install

作者

Jayel Zaghmoutt, Mohammad Nabulsi & Mohammad Ihmouda

许可证

JNSegmentedControl 在 MIT 许可下可用。有关更多信息,请参阅 LICENSE 文件。