FocusTvButton
UIButton 的轻量级包装,允许对 tvOS 进行额外定制
如果您想在 tableview cells 中实现相同级别的定制,您绝对应该查看 TvOSCustomizableTableViewCell
描述
FocusTvButton 允许在 tvOS 中定制 UIButtons,添加额外的属性来自定义布局属性,这些属性是 UIButtons 现成的不可定制的。
自定义属性
- 焦点背景颜色
- 非焦点背景颜色
- 选中背景颜色
- 圆角半径
- 焦点时缩放因子
- 焦点时阴影半径
- 焦点时阴影透明度
- 阴影颜色
- 焦点时阴影偏移
- 焦点动画持续时间
- 焦点/非焦点时的标题颜色
双色,线性渐变属性
- 焦点背景结束颜色
- 非焦点背景结束颜色
- 选中背景结束颜色
- 渐变起始 & 结束点
通过设置“背景结束”颜色属性,可以配置一个简单的双色,线性渐变。如果没有设置“背景结束”颜色属性,则 FocusTvButton
将默认使用纯色背景颜色。
需求
- tvOS 10.2+
- Xcode 11.0+
用法
FocusTvButton 可编程集成或嵌入到 xib 文件中。
编程集成
FocusTvButton 是 UIButton 的子类,因此可以像常规 UIButton 一样创建和使用。
let myButton = FocusTvButton()
myButton.focusedBackgroundColor = .red
myButton.normalBackgroundColor = .white
myButton.cornerRadius = 12.0
// with optional gradient
myButton.focusedBackgroundEndColor = .green
myButton.normalBackgroundColor = .black
myButton.gradientStartPoint = .zero
myButton.gradientEndPoint = CGPoint(x: 0, y: 1)
嵌入 xib 或 Storyboard 文件中
由于 FocusTvButton 是 UIButton 的子类,第一步是从对象库中拖动一个常规的 UIButton 到您的视图。
然后,将“自定义类”的值改为“FocusTvButton”,并将按钮类型改为“自定义”,以避免默认的焦点行为。
就是这样...
可以使用 IBInspectables 在 Storyboard 中直接配置自定义属性。
安装
Cocoapods
CocoaPods 是 Cocoa 项目的依赖项管理器。您可以使用以下命令安装它
$ gem install cocoapods
要在 Xcode 项目中集成 FocusTvButton 使用 CocoaPods,请在您的 Podfile
中指定它
source 'https://github.com/CocoaPods/Specs.git'
platform :tvos, '9.0'
use_frameworks!
target '<Your Target Name>' do
pod 'FocusTvButton', '~> 3.1.0'
end
然后,运行以下命令
$ pod install
Carthage
Carthage是一个去中心化的依赖管理器,它构建您的依赖并提供二进制框架。
您可以使用以下命令通过Homebrew安装Carthage
$ brew update
$ brew install carthage
要使用Carthage将FocusTvButton集成到您的Xcode项目中,在Cartfile中指定它
github "dcordero/FocusTvButton" ~> 3.1.0
运行carthage update构建框架,然后将构建的FocusTvButton.framework拖到您的Xcode项目中。
手工方式
如果您更喜欢,也可以手动将FocusTvButton集成到项目中,只需将FocusTvButton.swift复制到项目中即可。