TTSegmentedControl 0.4.10

TTSegmentedControl 0.4.10

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最新发布2019年11月
SPM支持 SPM

Efraim BudusanAlex Tudose 维护。



  • 作者
  • Igor Dumitru

TTSegmentedControl

Platform Version License Twitter

关于

这是一个优雅、动画化和可定制的 iOS 分段控制器。

此项目由 Tapptitude 维护,Tapptitude 是一家专门致力于为初创公司和品牌构建高品质 iOS 和 Android 移动应用的移动应用开发公司。我们是一家驻欧洲的充满活力的团队,由经验丰富的移动应用开发和设计人员组成,为希望创新的移动应用创业公司提供完整的移动应用开发服务。

特点

  • 变量数量的项
  • 动画过渡
  • 弹跳动画
  • 完全可配置(颜色、渐变、阴影、圆角半径)
  • 可在 Interface Builder 中设计

需求

  • iOS 8.0+
  • Xcode 7.3+

安装

CocoaPods

Swift 5.0

pod 'TTSegmentedControl', '~>0.4.9'

Swift 4.2

pod 'TTSegmentedControl', '~>0.4.8'

Swift 4.0

pod 'TTSegmentedControl', '~>0.4.6'

Swift 3.X

pod 'TTSegmentedControl', '~>0.3'

Swift 2.x

pod 'TTSegmentedControl', '0.1.1'

Carthage

github "tapptitude/TTSegmentedControl"

手动

将 TTSegmentedControl.swift 文件添加到您的项目中。

用法

  • 编程
let segmentedControl = TTSegmentedControl()
segmentedControl.allowChangeThumbWidth = false
segmentedControl.frame = CGRect(x: 50, y: 200, width: 100, height: 50)
segmentedControl.didSelectItemWith = { (index, title) -> () in
    print("Selected item \(index)")
}
view.addSubview(segmentedControl)
  • 界面构建器

添加一个 UIView 并将其类设置为 TTSegmentedControl。您可以直接从界面构建器中自定义控件。

如何自定义?

检查 playground,看看如何实现和自定义 SegmentedControl。

pod try TTSegmentedControl

为了自定义分段控件,您需要编辑其属性。

segmentedControl.defaultTextColor = UIColor.blackColor()
segmentedControl.selectedTextColor = UIColor.whiteColor()
segmentedControl.thumbGradientColors = [UIColor.redColor(), UIColor.blueColor()]
segmentedControl.useShadow = true

您可以用图片代替标题。

// ask segmented control to initialize all elements internally
segmentedControl.layoutSubviews()
        
let imageAttachment = NSTextAttachment()
imageAttachment.image = image
imageAttachment.bounds = CGRect(x: 0, y: -5, width: 20, height: 20)
        
let attributes = NSAttributedString(attachment: imageAttachment)
        
segmentedControl.changeAttributedTitle(attributes, selectedTile: attributes, atIndex: atIndex)

或者结合图片和标题。

// ask segmented control to initialize all elements internally
segmentedControl.layoutSubviews()
        
let imageAttachment = NSTextAttachment()
imageAttachment.image = image
imageAttachment.bounds = CGRect(x: 0, y: -5, width: 20, height: 20)
        
let attributes = segmentedControl.attributedDefaultTitles.first?.mutableCopy() as! NSMutableAttributedString
attributes.append(NSAttributedString(attachment: imageAttachment))
        
let selectedAttributes = segmentedControl.attributedSelectedTitles.first?.mutableCopy() as! NSMutableAttributedString
selectedAttributes.append(NSAttributedString(attachment: imageAttachment))
        
segmentedControl.changeAttributedTitle(attributes, selectedTile: selectedAttributes, atIndex: atIndex)

贡献

欢迎 Fork、提交拉取请求或向我们发送反馈和建议!

许可证

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