UIScrollView和導航欄的淵源

一 拋磚引玉

在iOS的開發(fā)中烹笔,當TableView遇到導航欄后自動下移的解決方案:

1.self.automaticallyAdjustsScrollViewInsets = NO;// 默認是YES

2.self.edgesForExtendedLayout = UIRectEdgeNone;// 推薦使用

3.self.navigationController.navigationBar.translucent = NO; // 默認是YES

很多開發(fā)者都很熟悉這幾句簡單的代碼早处,都知道TableView遇到導航欄后自動下移怎么解決牌里。真正的大牛應該是掌握知識點途蒋,知道運用其能解決什么問題瓷马,做出什么效果糠涛,而不是純粹的copy社搅。

二 庖丁解牛

iOS7開始厉斟,你有幾種方式常見的方式去操作控制器view的布局(控制器就默認添加了全屏屬性)

  • edgesForExtendedLayout (默認的值UIRectEdgeAll)
  • automaticallyAdjustsScrollViewInsets (默認值YES)
  • contentInsetAdjustmentBehavior (UIScrollView屬性)
  • extendedLayoutIncludesOpaqueBars (默認值NO)
  1. edgesForExtendedLayout

字面含義:控制器view的鋪滿樣式挚躯,指定邊緣要延伸的方向,默認UIRectEdgeAll是延伸到整個屏幕的高度擦秽,即使有上有navigationBar,下有tabBar码荔;UIRectEdgeNone是view從navigationBar下tabBar上開始平鋪漩勤,即不透過導航欄和tabBar。

當edgesForExtendedLayout值為UIRectEdgeAll時:


22551521528834_.pic_thumb.jpg

當edgesForExtendedLayout值為UIRectEdgeNone時:


22561521529025_.pic_thumb.jpg
  1. automaticallyAdjustsScrollViewInsets和contentInsetAdjustmentBehavior

字面含義:視圖里面存在唯一一個UIScrollView或其子類View缩搅,那么它會自動設置相應的內(nèi)邊距越败,決定scroll是否占據(jù)整個視圖。
automaticallyAdjustsScrollViewInsets默認值是YES,contentInsetAdjustmentBehavior默認值是UIScrollViewContentInsetAdjustmentAutomatic硼瓣,即默認是有內(nèi)邊距的究飞。

溫馨小提示:automaticallyAdjustsScrollViewInsets在iOS11已廢除,需要設置contentInsetAdjustmentBehavior才生效堂鲤,為了兼容iOS11亿傅,偷懶的程序員都會擴展一個屬性如autoAdjustsScrollViewInsets內(nèi)部再根據(jù)系統(tǒng)判斷設置哪個。

當automaticallyAdjustsScrollViewInsets默認值是NO(iOS11:contentInsetAdjustmentBehavior默認值是UIScrollViewContentInsetAdjustmentAutomatic)時:


[圖片上傳中...(22581521531393_.pic_thumb.jpg-21a94c-1521531557869-0)]

22581521531393_.pic_thumb.jpg
  1. extendedLayoutIncludesOpaqueBars

字面含義:是否延伸到包含不透明的狀態(tài)欄筑累,默認值是NO袱蜡。蘋果的狀態(tài)欄(status bar)是透明的。如果狀態(tài)欄不透明慢宗,這個試圖就不回擴展到不透明的狀態(tài)欄底部坪蚁,除非將其值設置為YES。

溫馨小提示:如果狀態(tài)欄不透明镜沽,即使你設置edgesForExtendedLayout 為 UIRectEdgeAll敏晤,extendedLayoutIncludesOpaqueBars為NO(默認如此),view不會延伸到狀態(tài)欄底部的

三 靈活應用
  • 需求一:滾動視圖view從導航欄底部開始缅茉,但是在滑動時嘴脾,讓其穿透到導航欄的底部

  • 需求二:滾動視圖view從導航欄底部開始,在滑動時蔬墩,不讓其穿透到導航欄底部

  • 需求三:等等译打,業(yè)務往往有很多種不同的需求

針對需求一只需將edgesForExtendedLayout設置為UIRectEdgeAll且automaticallyAdjustsScrollViewInsets(或者contentInsetAdjustmentBehavior為UIScrollViewContentInsetAdjustmentAutomatic)為YES即可。
針對需求二將edgesForExtendedLayout設置為UIRectEdgeNone即可

雖然內(nèi)容很簡單拇颅,但要掌握其原理奏司,才能應付各種需求,學無止境樟插,只有不斷學習韵洋,程序員才有立足之地。

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末黄锤,一起剝皮案震驚了整個濱河市搪缨,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌鸵熟,老刑警劉巖副编,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異旅赢,居然都是意外死亡齿桃,警方通過查閱死者的電腦和手機惑惶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進店門煮盼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來短纵,“玉大人,你說我怎么就攤上這事僵控∠愕剑” “怎么了?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵报破,是天一觀的道長悠就。 經(jīng)常有香客問我,道長充易,這世上最難降的妖魔是什么梗脾? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮盹靴,結果婚禮上炸茧,老公的妹妹穿的比我還像新娘。我一直安慰自己稿静,他們只是感情好梭冠,可當我...
    茶點故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著改备,像睡著了一般控漠。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上悬钳,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天盐捷,我揣著相機與錄音,去河邊找鬼默勾。 笑死碉渡,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的灾测。 我是一名探鬼主播爆价,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼媳搪!你這毒婦竟也來了铭段?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤秦爆,失蹤者是張志新(化名)和其女友劉穎序愚,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體等限,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡爸吮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年芬膝,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片形娇。...
    茶點故事閱讀 38,654評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡锰霜,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出桐早,到底是詐尸還是另有隱情癣缅,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布哄酝,位于F島的核電站友存,受9級特大地震影響,放射性物質發(fā)生泄漏陶衅。R本人自食惡果不足惜屡立,卻給世界環(huán)境...
    茶點故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望搀军。 院中可真熱鬧膨俐,春花似錦、人聲如沸奕巍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽的止。三九已至檩坚,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間诅福,已是汗流浹背匾委。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留氓润,地道東北人赂乐。 一個月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像咖气,于是被迫代替她去往敵國和親挨措。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,543評論 2 349

推薦閱讀更多精彩內(nèi)容