如何解决iOS - 如何通过水平滑动/淡入淡出淡入 UIView?
iOS 中是否有一种方法可以在 UIView(特别是 UILabel)上运行淡入淡出动画,该动画将通过滑动动作淡入淡出(因此,如果它中途暂停,则左侧可见,右侧不可见,中间有一些渐变之间)。
我想知道是否有可以与 Alpha 通道一起使用的渐变蒙版?
实现这种揭示的任何想法或代码片段?垂直或水平。
(链接到同一问题,但供 Android 参考 - Android - How to fade in a View with a horizontal swipe/fade?)
解决方法
简单的 hacky 解决方案将带有可以放置在标签顶部的附加视图。您可以这样做的方法是创建此视图并通过 X 轴或 Y 轴对其进行动画处理。你仍然需要做两件事
- 简单的滑动手势即可触发动画。
- 平移手势会随着手势的移动而移动视图。(也许如果您拖动标签宽度/高度的 50% 以上以触发动画的其余部分。)
如果添加从清晰颜色到背景颜色的渐变,动画效果会更好。
也许不是您问题的确切答案,但它足够好。
此外,您可以像这样跟踪平移手势
@objc private func didPan(_ sender: UIPanGestureRecognizer) {
switch sender.state {
case .began:
//dispalay view
case .changed:
let translation = sender.translation(in: view)
//move view by x or y
case .ended,.cancelled:
//finish animation or reverted
}
default:
break
}
}
你应该有这样的看法 父视图 - 此视图将在其边界内剪辑子视图 标签 - 这是你的标签,它在父标签中 动画视图 - 它在父视图中,它在动画开始的边界之外。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。