【问题标题】:How to make UIViews transition to visible state in a fade-in fashion?如何使 UIViews 以淡入方式过渡到可见状态?
【发布时间】:2016-01-28 18:13:46
【问题描述】:

这个问题可能看起来令人困惑,所以让我澄清一下。

我正在开发一个内容驱动的应用程序。内容是异步获取的,屏幕上通常有十几个或更多表示内容的元素。图片、文字……等等……都是通过 UIView 子类实现的。

我希望能够设置每个应用级别(通过外观代理或其他方法),一旦视图准备好呈现可见,它应该淡入 而不是在下一次渲染后突然出现。

有人有什么想法吗?是否有一些 CALayer 属性可以轻松实现这一点? 拉直?覆盖隐藏?内部使用 UIView 动画的便捷公共包装函数?

再一次,我知道如何使用 UIView 动画方法在个人层面上做到这一点。我想要的是所有 UIViews 的全局行为变化。

【问题讨论】:

    标签: ios swift uiview calayer


    【解决方案1】:

    您可以创建一个带有 readyForRendering 属性的 UIView 子类,并在它设置为 true 时执行淡入动画(您已经知道如何操作)。使您现有的 UIView 子类成为此新 UIView 子类的子类,并根据需要设置 readyForRendering。

    【讨论】:

      【解决方案2】:

      这不是可以通过外观代理完成的,但您可以继承 UIView 并覆盖其方法(或使用新方法创建扩展)addSubview() 方法来执行动画。

      【讨论】:

      • 我不能子类化..我也需要它来处理库存的 UIKit 控件.. UILabel、UITextField....UIImageView....UIview ......通常的一堆。
      • 然后使用分类方法,比如UIView 上的addSubviewAnimated(),然后确保调用这个新方法而不是addSubview()。如果您想为 Interface Builder 中添加的子视图设置动画,那么这将无济于事。
      猜你喜欢
      • 1970-01-01
      • 2015-03-10
      • 2013-11-03
      • 2012-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-24
      • 1970-01-01
      相关资源
      最近更新 更多