Translucent
關(guān)于這個(gè)NavigationBar透明屬性問題其實(shí)很早就接觸到了,可能是過了太久沒怎么接觸UI,一些細(xì)節(jié)沒法一下想到位,在此記錄下,方便以后查閱!
當(dāng)設(shè)置translucent = YES的時(shí)候。controller中self.view的原點(diǎn)是從導(dǎo)航欄左上角開始計(jì)算
當(dāng)設(shè)置translucent = NO的時(shí)候。controller中self.view的原點(diǎn)是從導(dǎo)航欄左下角開始計(jì)算
AutomaticallyAdjustsScrollViewInsets
controller默認(rèn)的automaticallyAdjustsScrollViewInsets屬性為YES,這個(gè)屬性的一般與默認(rèn)的transluent一起使用,self.view上的scrollView視圖會(huì)自動(dòng)調(diào)節(jié)其內(nèi)部的contentInset以達(dá)到scrollView前面的內(nèi)容不會(huì)被navigationBar遮?。ㄒ?yàn)楫?dāng)transluent為YES的時(shí)候,設(shè)置坐標(biāo)原點(diǎn)是從屏幕頂部開始)
Edges
其實(shí)很早以前開發(fā)的時(shí)候,遇到這個(gè)問題比較模棱倆可,主要是因?yàn)閚aigationBar的translucent屬性在整個(gè)項(xiàng)目中不一定是一個(gè)固定的值(尤其是在設(shè)置子控件高度的情況下),遇到這種情況,可以借助Edges解決,當(dāng)然默認(rèn)的automaticallyAdjustsScrollViewInsets是為YES的,translucents就不需要管了
[self.tableViewmas_makeConstraints:^(MASConstraintMaker*make) {
make.edges.equalTo(self.view).with.insets(UIEdgeInsetsMake(0,0,0,0));
}];