TTSegmentedControl
关于
这是一个优雅、动画化和可定制的 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 文件。