iOS navigation總結(jié)

一溺蕉、探討navigation布局問題

看下這三個屬性的影響:
1该面、edgesForExtendedLayout
2骗奖、extendedLayoutIncludesOpaqueBars
3、translucent

edgesForExtendedLayout布局的屬性:

1腮出、 默認(rèn)情況下:UIRectEdgeAll布局從(0幻妓,0)開始


默認(rèn)情況

2蹦误、設(shè)置為:UIRectEdgeNone布局從(0劫拢,64)開始

- (void)viewDidLoad {
    [super viewDidLoad];
    self.edgesForExtendedLayout = UIRectEdgeNone;
}
none
小結(jié):iOS6以前布局是從導(dǎo)航欄(0,64)開始的强胰,iOS7之后實現(xiàn)扁平化效果舱沧,布局就從四周邊距(0,0)開始偶洋,這個屬性是決定view的整體布局,他是把整個view整體偏移熟吏。一定要先理解這個屬性的含義,不然后面會混淆玄窝。

translucent影響布局屬性

1牵寺、默認(rèn)情況布局translucent = YES 從(0,0)開始


透明

2恩脂、 translucent為不透明情況布局從(0帽氓,64)開始

- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor redColor];
    self.navigationController.navigationBar.translucent = NO;
}
不透明
小結(jié):系統(tǒng)默認(rèn)是透明的,布局從(0俩块,0)開始黎休,當(dāng)設(shè)置為不透明時:布局便從(0,64)開始玉凯。此時self.edgesForExtendedLayout屬性失效势腮。優(yōu)先級順序 translucent>edgesForExtendedLayout。如果一定要在不透明的情況下從(0漫仆,0)開始布局呢捎拯,這就引出了第三個屬性。

extendedLayoutIncludesOpaqueBars影響布局

1歹啼、默認(rèn)情況下玄渗,在導(dǎo)航欄不透明情況座菠,extendedLayoutIncludesOpaqueBars默認(rèn)是NO狸眼。布局便從(0,64)開始


默認(rèn)

2浴滴、為YES情況下 布局便從(0拓萌,0)開始

- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor redColor];
    self.navigationController.navigationBar.translucent = NO;
    self.extendedLayoutIncludesOpaqueBars = YES;
}
Yes
小結(jié):這個屬性是在導(dǎo)航欄不透明的情況下是否要延伸布局區(qū)域。

總結(jié):重要:優(yōu)先級順序 extendedLayoutIncludesOpaqueBars >translucent>edgesForExtendedLayout升略。

二微王、影響scrollview布局因素

了解上面三個屬性的作用和差別后,我們來探討一下布局view和scrollview時品嚣,在這三個屬性作用下會有什么不同炕倘。
1、在view上面添加子View
這種情況比較簡單翰撑,子view的布局只是受父view的影響罩旋。
2、在view上面添加scrollview(這種情況比較特殊,但是也不難理解涨醋,它主要是影響scrollview的contentView)

  • edgesForExtendedLayout屬性影響

1)導(dǎo)航欄透明瓜饥,默認(rèn)情況UIRectEdgeAll

我們在view上面添加一個黃色的scrollview,然后在scrollview上面添加一個藍(lán)色的blue.

- (void)viewDidLoad {
    [super viewDidLoad];

    UIScrollView *subview = [[UIScrollView alloc] initWithFrame:self.view.bounds];
    subview.backgroundColor = [UIColor yellowColor];
    [self.view addSubview:subview];
    
    UIView *scrollviewSubView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
    scrollviewSubView.backgroundColor = [UIColor blueColor];
    [subview addSubview:scrollviewSubView];
}
UIRectEdgeAll
打印結(jié)果

小結(jié):我們可以看到藍(lán)色的view布局從(0,64)開始浴骂,從打印的結(jié)果看乓土,scrollview的frame是從(0,0)開始的溯警,只是他的contentOffset(0趣苏,-64)開始。也就是說梯轻,是scrollview的內(nèi)容偏移了拦键。
2)導(dǎo)航欄透明情況,UIRectEdgeNone

UIRectEdgeNone
打印結(jié)果

小結(jié):scrollview的frame(0,0)檩淋,contentOffset也是(0芬为,0)沒有出現(xiàn)偏移現(xiàn)象。


  • translucent 屬性影響

1)透明情況和上面UIRectEdgeAll一樣
2)不透明情況和上面UIRectEdgeNone一樣


  • extendedLayoutIncludesOpaqueBars 屬性影響

1)extendedLayoutIncludesOpaqueBars = NO蟀悦,上面UIRectEdgeNone一樣

  1. extendedLayoutIncludesOpaqueBars = YES,和上面UIRectEdgeAll一樣

總結(jié):從上面的情況我們可以得出結(jié)論媚朦,如果scrollview布局從導(dǎo)航欄下面開始(也就是被遮擋了),則scrollview的內(nèi)容會自動偏移contentOffset(0日戈,-64).那如果不需要scrollview偏移呢询张,這就引出下面的屬性。
@property(nonatomic,assign) BOOL automaticallyAdjustsScrollViewInsets API_DEPRECATED("Use UIScrollView's contentInsetAdjustmentBehavior instead", ios(7.0,11.0),tvos(7.0,11.0)); // Defaults to YES
代碼
布局界面
打印結(jié)果
小結(jié):則此時浙炼,scrollview被導(dǎo)航欄遮擋后份氧,不會再自動偏移了。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末弯屈,一起剝皮案震驚了整個濱河市蜗帜,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌资厉,老刑警劉巖厅缺,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異宴偿,居然都是意外死亡湘捎,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進(jìn)店門窄刘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來窥妇,“玉大人,你說我怎么就攤上這事娩践』铘妫” “怎么了逞带?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長纱新。 經(jīng)常有香客問我展氓,道長,這世上最難降的妖魔是什么脸爱? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任遇汞,我火速辦了婚禮,結(jié)果婚禮上簿废,老公的妹妹穿的比我還像新娘空入。我一直安慰自己,他們只是感情好族檬,可當(dāng)我...
    茶點故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布歪赢。 她就那樣靜靜地躺著,像睡著了一般单料。 火紅的嫁衣襯著肌膚如雪埋凯。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天扫尖,我揣著相機(jī)與錄音白对,去河邊找鬼。 笑死换怖,一個胖子當(dāng)著我的面吹牛甩恼,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播沉颂,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼条摸,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了铸屉?” 一聲冷哼從身側(cè)響起钉蒲,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎抬探,沒想到半個月后子巾,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡小压,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了椰于。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片怠益。...
    茶點故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖瘾婿,靈堂內(nèi)的尸體忽然破棺而出蜻牢,到底是詐尸還是另有隱情烤咧,我是刑警寧澤,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布抢呆,位于F島的核電站煮嫌,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏抱虐。R本人自食惡果不足惜昌阿,卻給世界環(huán)境...
    茶點故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望恳邀。 院中可真熱鬧懦冰,春花似錦、人聲如沸谣沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽乳附。三九已至内地,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間赋除,已是汗流浹背瓤鼻。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留贤重,地道東北人茬祷。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像并蝗,于是被迫代替她去往敵國和親祭犯。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,452評論 2 348