2014-09-29 152 views
12

iOS 8的新功能是一个separatorEffect属性,您可以为其分配UIVisualEffect。有没有人知道这是为了什么?我试过了,我没有看到它有任何,呃,视觉效果。什么是UITableView separatorEffect属性?

+0

对不起,没有看到这出于某种原因。 - 有Github项目玩是一个很大的帮助,谢谢。 – matt 2015-04-25 15:20:54

回答

20

我想知道完全一样的东西,所以我把Github项目放在一起面对同一个问题的任何人。

的基本想法是,如果您的tableView的backgroundView由UIVisualEffectView与模糊效果,那么seperatorEffect具有相同模糊的UIVisualEffectView会产生我们看到在通知中心,其中隔板似乎效果设置为一个充满活力的效果透明。

事情是这样的:

tableView.separatorEffect = UIVibrancyEffect(forBlurEffect: blurredBackgroundView.blurView.effect as UIBlurEffect) 

会产生一个表视图这样的:

enter image description here

+0

为什么他们实现这个功能,如果它只是使赛慢和缓慢? – 2015-09-19 08:03:08

+0

你有什么证据支持你的理论? @ItzhakIra – 2015-09-19 08:04:11

+0

我实际上实现了你的确切项目,其美丽的我可能会添加。但由于某种原因,我的赛段速度通常较慢,速度较慢。 – 2015-09-19 08:05:17

4

通过观看今年WWDC的会议419开始:“Advanced Graphics and Animations for iOS Apps”,他们解释了新的视觉效果类是如何工作的。

我在我的应用程序中有一个UITableViewController,我用它作为模态弹窗。父视图控制器被具有UIBlurEffect的UIVisualEffectView弄糊涂,而表视图分隔符将UIVibrancyEffect设置为效果。在我的iPhone 5,它看起来像这样: Screenshot of modal popover

这是同样的观点是什么样子,如果separatorEffect是零: enter image description here

你可以,当然,应用UIBlurEffect到分离器,但很可能只是浪费资源。

注意:实际上并没有做我在这个例子中做的。 UIVibrancyEffect是非常昂贵的。只是将UIVibrancyEffect应用于此表格视图的分隔符会导致我的应用错过iPhone 5上的60 FPS目标。

另请注意,Settings.app中辅助功能部分下的Reduce透明度选项是一件事情,并且会导致UIBlurEffects呈现为纯色。在实例化任何UIVisualEffects之前始终检查。这里有一些关键字可供你google:UIAccessibilityIsReduceTransparencyEnabled()UIAccessibilityReduceTransparencyStatusDidChangeNotification

希望我能帮助你。

+0

我没有说我不知道​​“新的视觉效果类是如何工作的”。我知道。我不明白的是UITableView'separatorEffect'的作用。我没有看到它在我的测试中做了什么,我也没有看到它在屏幕截图中做了什么。 – matt 2014-10-06 21:31:56

+0

这就是为什么我建议你观看上面提到的WWDC会话。我添加了另一张屏幕截图,显示了视图的外观,没有分隔效果。 – 2014-10-06 22:23:28

1

由于这两个答案都表示,这是为唯一的影响是一个充满活力的效果时,桌子的背景是模糊效果。有和没有效果的差异可能是微妙:

enter image description here

enter image description here