微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

iOS - 如何通过水平滑动/淡入淡出淡入 UIView?

如何解决iOS - 如何通过水平滑动/淡入淡出淡入 UIView?

iOS 中是否有一种方法可以在 UIView(特别是 UILabel)上运行淡入淡出动画,该动画将通过滑动动作淡入淡出(因此,如果它中途暂停,则左侧可见,右侧不可见,中间有一些渐变之间)。

我想知道是否有可以与 Alpha 通道一起使用的渐变蒙版

实现这种揭示的任何想法或代码片段?垂直或水平。

链接到同一问题,但供 Android 参考 - Android - How to fade in a View with a horizontal swipe/fade?

解决方法

简单的 hacky 解决方案将带有可以放置在标签顶部的附加视图。您可以这样做的方法是创建此视图并通过 X 轴或 Y 轴对其进行动画处理。你仍然需要做两件事

  1. 简单的滑动手势即可触发动画。
  2. 平移手势会随着手势的移动而移动视图。(也许如果您拖动标签宽度/高度的 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 举报,一经查实,本站将立刻删除。