2014-09-29 153 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