TOSegmentedControl 1.2.0

TOSegmentedControl 1.2.0

Tim Oliver 维护。



  • Tim Oliver

TOSegmentedControl

TOSegmentedControl

CI Version Carthage compatible GitHub license Platform PayPal Twitch

作为 iOS 13 中特具视觉优化的部分,UISegmentedControl 完全重新设计,具有更圆滑、更干净,以及略微拟物化的外观。

TOSegmentedControlUIControl 的子类,完全重新实现了新 UISegmentedControl 组件的外观和感觉,使开发者能够在支持 iOS 的先前版本中采用其外观。

功能

  • 重新创建 UISegmentedControl 的新外观,使其在之前的 iOS 版本中可用。
  • 支持文本和图像作为段类型。
  • 支持 @IBDesignable@IBInspectable
  • 可配置在创建后动态添加或删除项。
  • 使用 Objective-C 编写,但完全兼容 Swift。
  • 提供块或 UIControlEvents 来接收当控件被点击时的通知。
  • 支持 iOS 13 的浅色和深色模式。
  • 一个可反转的模式,其中连续点击同一项会翻转其方向。

示例代码

TOSegmentedControl 的编写是为了尽可能地遵循 UISegmentedControl 的接口。这应该使它的工作变得非常直观。

Swift

在 Swift 中,类被重命名为 SegmentedControl。创建新实例的方式与 UISegmentedControl 非常相似。

// Create a new instance
let segmentedControl = SegmentedControl(items: ["First", "Second", "Third"])

// Add a closure that will be called each time the selected segment changes
segmentedControlsegmentTappedHandler = { segmentIndex, reversed in
   print("Segment \(segmentIndex) was tapped!")
}

// Add a new item to the end
segmentedControl.addSegment(withTitle: "Fourth")

// Insert a new item at the beginning
segmentedControl.insertSegment(withTitle: "Zero", at: 0)

// Remove all segments
segmentedControl.removeAllSegments()

Objective-C

NSArray *items = @[@"First", @"Second", @"Third"];

// Create a new instance
TOSegmentedControl *segmentedControl = [[TOSegmentedControl alloc] initWithItems:items]];

// Add a block that will be called each time the selected segment changes
segmentedControl.segmentTappedHandler = ^(NSInteger index, BOOL reversed) {
    NSLog(@"Segment %d was tapped!", index);
};

// Add a new item to the end
[segmentedControl addSegmentWithTitle:@"Fourth"];

// Insert a new item at the beginning
[segmentedControl insertSegmentWithTitle:@"Zero" atIndex:0];

// Remove all segments
[segmentedControl removeAllSegments];

系统要求

iOS 9.0 或更高版本

安装

CocoaPods

在您的 Podfile 中添加以下内容

pod 'TOSegmentedControl'
Carthage
  1. 在您的 Cartfile 中添加以下内容
github "TimOliver/TOSegmentedControl"
  1. 运行 carthage update

  2. Carthage/Build 文件夹中,导入 TOSegmentedControl.framework

  3. 按照 Carthage 入门 中的剩余步骤完成框架集成。

手动安装

所有必要的源文件都位于 TOSegmentedControl 文件夹中。只需将该文件夹拖到您的 Xcode 项目中。

致谢

TOSegmentedControlTim Oliver 创建,作为 iComics 的组件。

Pixeden 提供的 iOS 设备原型。

许可

TOSegmentedControl 在MIT许可证下可用。更多信息请参阅 LICENSE 文件。 analytics