2017年3月29日 星期三

for xamarin ios,在UI builder/Deigner 對最底層的viewc設定好透明度為半透明時,上面的view也跟著變成了半透明了,如何是好?

相信用xamarin開發使用者界面時,大家多少都會用到設計modal view的時候
今天不討論如何做modal view(有興趣的朋友自己去查「ModalPresentationStyle」&「PresentViewController」等相關指令)
而是會遇到一個問題:如果只是單純把那個modal ViewController的view的background color設定為「clear」的話,那顯示出我們設計的modalview時,會跟母畫面沒有區隔(如果你有為這modal view加些陰影就比較好一點)

那如果做到跟UIAlertView一樣在對話框的外圍做出半透明?
這時候你會想直接在那個Modal ViewController的底色選灰色,然後設定alpha值,是吧,
怪事就發生了,連帶上面的這個淺青色的view也變成半透明的,像這樣....
(這張我是在對話框那裡加再加了一層下去,看仔細點,母視窗UITable Cell的線快看到,如果項目很多個的話,字就會出現在淺藍對話框上面,真的是好可怕的靈異現象啊)

就這樣滿足了?還是要放棄了?
放心啦,這真的是要coding才能解決的,不要老是認為View Designer就一切幫你做好了,
有些人也是有遇到這狀況,答案是不要在UI builder中打轉、加幾個圖層,而是一行指令
(當然你的最底層view的背景色還是要設定為clear,透明度設回去為「1」)
===================就是這句===================================
View.BackgroundColor = UIColor.Black.ColorWithAlpha( new System.nfloat( 0.4));
==========================================================
結果如下圖:

這樣,就是我們要的如同UIAlertView那樣有底色又modal的對話框了
更多細節,
請參考這裡




沒有留言:

張貼留言