epo*_*gee 36 transparency cocoa-touch ios
透明度是邪恶的,在iOS设备上甚至比在更重的机器上更加邪恶.因此,我认为首先使用view removeFromSuperView,如果不适用view.hidden=YES,作为最后的手段view.alpha=0.但实际上我不知道幕后发生了什么.是否存在差异,尤其是后两者之间?
我有一个UIView animateWithDuration:animations:completion:场景,如果你在完成块中放入hidden = YES,它将隐藏而不让动画块完成.因此我不得不求助于alpha = 0.
一个人对另一个人的惩罚是什么?干杯,EP.
Lig*_*Man 66
我不确定是否仍然绘制了带有alpha 0.0的视图.检查文档库:
隐藏视图
要以可视方式隐藏视图,可以将其hidden属性设置为YES或将其alpha属性更改为0.0.隐藏视图不会从系统接收触摸事件.但是,隐藏视图确实参与与视图层次结构关联的自动调整和其他布局操作.因此,隐藏视图通常是从视图层次结构中删除视图的便捷替代方法,尤其是如果您计划在某个时刻再次显示视图时.
说的是:
我相信Cocoa Touch对待和低于0.02的alpha也被隐藏,因为低于alpha级别它是不可见的,Apple的工程师认为隐形控件不应该是可点击的.
使用alpha值需要图形硬件将对象中的每个像素与下面的所有内容混合在一起.这是计算密集型的.另一方面,隐藏标志是一个开关.如果你打开它,操作系统知道它根本不必绘制对象.
alpha 为零的内容仍然会被绘制,但是隐藏的视图不会重新绘制到屏幕上。由于这种情况仅在视图发生变化时才会发生,因此差异应该微不足道。如果您遇到性能问题,我强烈建议使用时间分析器和核心动画工具进行分析。
设置 alpha 而不是隐藏属性的优点之一是 alpha 属性可以更好地处理动画。我有一个动画来显示/隐藏我的导航栏,当我使用 alpha 属性时,导航栏逐渐消失,而隐藏属性则更加突然。