国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

探究navigationBar的translucent屬性

2019-11-08 00:39:05
字體:
來源:轉載
供稿:網友

簡介:

  當我們在使用navigationController的時候,執行nav的push和pop過程中,有時候會涉及到nav的顏色問題,不經意間就會出現navigationBar消失了,展示一條黑色背景或者白色背景,這無疑非常難看,這多半是translucent的問題,那下面我們就探究一下關于translucent屬性。

我們從種情況來分析:非滾動視圖和滾動視圖。

關于屬性:

在iOS7以后,默認為YES。{控件從(0,0)點開始,設置為NO,則從nav底部(0,64)開始};

情況1:非滾動視圖:

1、我們模擬情景,放置一個寬為屏幕寬度,高度為200的綠色的button,設置相對控制器view的坐標為(0,0);

此時采用默認值:iOS7以后,translucent為YES,看看效果:

默認translucent = yes

看視圖分析的情況

2、此時再將translucent更改為NO,再看看效果

translucent = NO

我們發現,button并沒有被navigationBar遮擋!!!,再看界面層次結構:

translucent = NO,按鈕沒有被遮擋

結論:

顯而易見,translucent為默認值YES時,綠色button從屏幕左上角(0,0)開始。translucent設為NO以后,綠色button從(0,64)開始。

也就得出,translucent為YES,控制器view從(0,0)開始;translucent為NO,控制器view從(0,64)開始。

情況2:滾動視圖:

· 我們都知道滾動視圖中有一個屬性是contentOffset,設置內容偏移量,從這個角度,分析一下translucent屬性對滾動視圖有什么影響:

· 從iOS7以后,由于translucent值為YES,坐標從(0,64)開始,但這是對于非滾動視圖來說的。接下來,我們按照分析非滾動視圖的順序,來模擬一個場景,nav嵌套一個tableView,tableView的背景色是紅色,坐標(0,0),寬高與控制器view等寬等高。

1、我們先使用translucent默認是YES,來看看情況。

我們發現,雖然tableView的坐標點還是(0,0),但是內容偏移了64,紅色背景已經透出來了。這就是translucent為默認值YES時,加載滾視圖的特性!

(PS:如果我們不想讓內容偏移,就任性的讓內容被navigationBar遮蓋,有兩個方案:

            1、此時有一個滾動視圖特有的屬性,automaticallyAdjustsScrollViewInsets,默認為YES,滾動視圖會默認進行調整,如果這設置為NO,不進行自動調整,就是下面這個效果,cell被遮擋住

            2、設置self.edgesForExtendedLayout=UIRectEdgeNone;,控制器的view也變成了從(0,64)開始,而不是上面條件1的(0,0)點。本人測試,這樣做nav會變得略黑色,目測背面window的顏色)

2、再模擬一個,我們將translucent設置為NO,再來看看效果:

我們發現,第一:cell依然沒有被遮擋,但是tableView所在控制器view的坐標已經不再是(0,0)了,而是(0,64)。第二:nav的透明沒有了,變為了純白色。這就是translucent的特性。這樣如果我們增加了側滑手勢的話,就會導致上面的navigationBar消失,顯示后面的黑色背景。這顯然不是我們想要的。

結論:

當我們使用滾動視圖的時候,,比如tableVIew,scrollview時候,建議不要修改translucent屬性,就是用系統默認的YES。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 瑞丽市| 谷城县| 淮阳县| 邯郸县| 伊吾县| 新化县| 民和| 安阳市| 错那县| 临猗县| 屏南县| 美姑县| 青铜峡市| 贺州市| 枣庄市| 靖宇县| 甘肃省| 余干县| 安西县| 晋江市| 丰原市| 临邑县| 炉霍县| 鄄城县| 招远市| 和林格尔县| 农安县| 乌审旗| 长治市| 博野县| 奎屯市| 济阳县| 囊谦县| 黔西县| 德兴市| 贞丰县| 马山县| 南通市| 霍州市| 中宁县| 永修县|