UIView的opaque
屬性在默認情況下始終設置爲「YES」。但UIView類的參考陳述如下:UIView不透明屬性
不透明視圖預計會填滿完全不透明的內容 - 也就是說,內容應該有一個1.0的alpha值。如果視圖不透明並且不填充邊界或包含完全或部分透明的內容,則結果是不可預測的。
由於改變視圖的alpha
是很常見的,尤其是在過渡或動畫,那麼上面的語句將意味着你必須始終手動設置opaque
到NO
,如果你要改變alpha
屬性爲好。
但我從來沒有手動調整opaque
並沒有任何明顯的症狀。做這個考慮有多必要?
但是這並沒有回答這個問題... @andrewx說:如果你忽略了文檔,並使用'opacity = YES'來使用透明區域,一切似乎都沒有問題。除了文檔會錯誤的事實之外,基於文檔中描述的屬性值的優化(未發佈)似乎根本不會發生。或者如果確實如此,則文檔沒有正確描述。對我的問題是:我應該照顧財產,如果是的話,爲什麼?性能?如果我不這樣做,會不會有糟糕的渲染?任何經驗的人?重現? –
我同意,這對我仍然沒有解決。如果iOS足夠聰明,可以忽略不透明屬性,那麼該屬性開始的目的是什麼? – johnbakers
@rob mayoff感謝您的編輯。我在最後一個小時做了一些測試,並確切地觀察了你描述的內容。我有一個全屏幕滾動視圖的應用程序,其中包含較小的滾動視圖作爲行,每個視圖都包含大量的子視圖,其中包含許多帶有透明背景的子視圖,甚至是陰影。我們在滾動時遇到了一些性能問題,我們通過刪除透明度和陰影來修復。但是,對於我現在的測試,我打開/關閉透明度,陰影和不透明屬性:在沒有配置的情況下,不透明道具的改變對正確的渲染,性能或內存使用有任何影響。 –