iOS 8中的新功能是separatorEffect
属性,您可以为其分配UIVisualEffect。有没有人想出这是为了什么?我已经尝试过了,我认为它没有任何视觉效果。
答案 0 :(得分:21)
我想知道完全相同的事情,所以我将Github项目放在一起,面对同样问题的任何人。
基本思想是,如果tableView的backgroundView包含具有模糊效果的UIVisualEffectView
,那么将seperatorEffect
设置为具有与UIVisualEffectView
相同模糊的鲜明效果将产生我们在通知中心看到的效果,其中分隔符看起来是透明的。
这样的事情:
tableView.separatorEffect = UIVibrancyEffect(forBlurEffect: blurredBackgroundView.blurView.effect as UIBlurEffect)
将生成如下表格视图:
答案 1 :(得分:4)
首先观看来自今年WWDC的会话419:" Advanced Graphics and Animations for iOS Apps",他们解释了新视觉效果类的工作原理。
我的app中有一个UITableViewController,我用它作为模态弹出窗口。具有UIBlurEffect的UIVisualEffectView使父视图控制器模糊,而表视图分隔符将UIVibrancyEffect设置为效果。在我的iPhone 5上,它看起来像这样:
如果separatorEffect为nil,那么这就是相同的视图:
当然,您可以将UIBlurEffect应用于分隔符,但这很可能只是浪费资源。
注意:实际上并没有做我在这个例子中所做的事情。 UIVibrancyEffect 非常昂贵。只是将UIVibrancyEffect应用于此表格视图的分隔符会导致我的应用程序错过iPhone 5上的60 FPS目标。
另请注意,Settings.app中“辅助功能”部分下的“缩小透明度”选项是一个问题,会导致UIBlurEffects呈现为纯色。在实例化任何UIVisualEffects之前一定要检查。以下是Google的一些关键字:UIAccessibilityIsReduceTransparencyEnabled()
和UIAccessibilityReduceTransparencyStatusDidChangeNotification
希望我能帮助你。
答案 2 :(得分:1)
正如两个答案所说的那样,当桌子的背景是模糊效果时,这个目的唯一的效果是活力效果。有效和无效的差异可能很微妙: