ParallaxView
概要
易于使用的具有视差效果的 UIView
和 UICollectionViewCell
,还可以通过扩展将其效果添加到任何 UIView
中。使用 Apple TV 遥控器旋转视图。与 Apple TV 主屏幕中的瓷砖功能类似。
发布历史
打开您的 storyboard 或 xib,然后拖放 UIView
控件。在 身份检查器 中将自定义类更改为 ParallaxView
。您也可以从代码中创建控件。
ParallaxCollectionViewCell
在 界面构建器 中将集合视图单元格类更改为 ParallaxCollectionViewCell
,或者从代码中执行此操作。
您还可以创建 ParallaxCollectionViewCell
的子类而不是 UICollectionViewCell
,并将其用作普通集合单元格。
扩展
如果 ParallaxView
和 ParallaxCollectionViewCell
无法满足您的需求,您可以使用扩展,该扩展可与其任何 UIView
配合使用。在很多情况下,它可以看起来像这个示例。
override func didUpdateFocus(in context: UIFocusUpdateContext, with coordinator: UIFocusAnimationCoordinator) {
coordinator.addCoordinatedAnimations({
if context.nextFocusedView === yourCustomView {
yourCustomView.addParallaxMotionEffects()
}
if context.previouslyFocusedView === yourCustomView {
yourCustomView.removeParallaxMotionEffects()
}
}, completion: nil)
}
在动画块内添加和删除视差效果非常重要,以避免出现故障。 ParallaxView
和 ParallaxCollectionViewCell
在内部使用相同的方法。有关更多详细信息,请查看示例。
自定义
组件在代码中有文档说明,也可以查看示例以获取更多详细信息。
属性
ParallaxView
和 ParallaxCollectionViewCell
具有相同的自定义属性。
-
parallaxEffectOptions
- 使用此属性可以自定义视差效果。parallaxMotionEffect
- 配置视差效果(平移、角度等)subviewsParallaxMode
- 枚举,允许您为ParallaxView
的子视图配置视差效果shadowPanDeviation
-ParallaxView
的阴影在视差效果期间将移动的点的最大值glowAlpha
- 配置发光效果的 alpha 值(如果等于 0.0,则不会添加发光效果)parallaxSubviewsContainer
- 用于应用子视图视差效果的自定义容器视图。默认情况下,它本身也将是可平移的视图。glowContainerView
- 将用作发光效果容器的视图。您不需要配置此属性,因为对于ParallaxView
,将自动创建子视图以用于此目的,对于ParallaxCollectionViewCell
,则将使用单元格的contentView
。默认情况下,当您使用扩展时(默认为 nil),可以使用self
作为发光容器,但仅当glowAlpha
大于 0.0 时。但如果您想要,您可以定义自定义视图 - 详细信息请参阅示例项目。glowImageView
- 将用作发光效果的图像视图。ParallaxView
框架提供默认图像,并将其设置。
-
glowPosition
- (默认.top
)- 允许自定义与glowImageContainer
相关的发光效果位置。您可以通过创建GlowPosition
实例来提供自定义设置。 -
parallaxViewActions
- 使用此属性的自定义属性来修改偏移视图的默认行为。内部ParallaxView
和ParallaxCollectionViewCell
都将调用回调和函数。setupUnfocusedState
- 当视图应改变外观为聚焦状态时,将在动画块中调用这个闭包。setupFocusedState
- 当视图应改变外观为非聚焦状态时,将在动画块中调用这个闭包。before BecomeFocused Animation
- 在开始聚焦变化动画之前调用这个闭包。before ResignFocus Animation
- 在开始非聚焦变化动画之前调用这个闭包。become Focused
- 当发生聚焦变化事件时调用这个闭包。在大多数情况下,默认实现应该工作。resign Focus
- 当发生聚焦变化事件时调用这个闭包。在大多数情况下,默认实现应该工作。animate Press In
- 默认的按下开始动画实现。animate Press Out
- 默认的按下结束动画实现。
-
cornerRadius
- 使用这个值替换self.view.layer.cornerRadius
。这将在需要时自动为光晕效果视图校正半径。
要求
Swift 5.0, tvOS 9.0
安装
在Podfile中添加行
# ...
target 'MyApp' do
# your other pod
# ...
pod 'ParallaxView'
end
# ...
向Cartfile添加一行
github "PGSSoft/ParallaxView"
需要 Xcode 12(Swift 5.3)!
在 Xcode 中
选择 文件 > Swift Packages > 添加包依赖。输入https://github.com/PGSSoft/ParallaxView
如果您想了解更多详细信息,请访问 Apple 的文档
-
说明书
您可以从我们的发布页面下载最新文件。完成后,将ParallaxView.xcodeproj
拖放到您的 Xcode 项目中,然后在 通用 选项卡下的 嵌入二元文件 部分,添加 ParallaxView.framework
。示例项目以相同方式配置,因此您有了一份参考清单。
用法
import ParallaxView
贡献
欢迎在 GitHub 上发送错误报告和拉取请求https://github.com/PGSSoft/ParallaxView。
许可证
该项目根据MIT 许可证条款提供开源。
关于
该项目由软件开发机构 PGS 软件公司 维护。查看我们的其他 开源项目 或 联系我们 以开发您的产品。