這題有點(diǎn)老了,原諒我想要記下來(lái)御毅。
今天寫(xiě)代碼遇見(jiàn)了一個(gè)奇葩的問(wèn)題:
提了一個(gè)新的需求說(shuō)要在最上面添加一個(gè)提醒的條,最終的效果是這樣的:
于是我開(kāi)始在原來(lái)的xib上面改怜珍,很快我就做完了:
我覺(jué)得這個(gè)功能簡(jiǎn)直就是簡(jiǎn)單端蛆,出來(lái)的一定是我想要的效果,結(jié)果:
納尼K址骸F鬯啊!我翔黃色的提醒的試圖呢揭璃?去哪里了晚凿??瘦馍?于是我開(kāi)始debug歼秽,發(fā)現(xiàn)我的提醒試圖被導(dǎo)航條遮住了
我搜索了一下才發(fā)現(xiàn),這個(gè)是iOS7的新增的屬性情组。
self.edgesForExtendedLayout = UIRectEdgeNone;
設(shè)置了試圖的全屏顯示的模式為None就可以了燥筷。這是為什么呢箩祥?因?yàn)閕OS7全屏顯示導(dǎo)致提醒的View被導(dǎo)航欄遮住了。
那么問(wèn)題來(lái)了肆氓,為什么之前沒(méi)有設(shè)置的時(shí)候底部的tableView可以正常的顯示呢袍祖?
iOS7為ScrollView添加了一個(gè)屬性
@property(nonatomic,assign) BOOL automaticallyAdjustsScrollViewInsets NS_AVAILABLE_IOS(7_0); // Defaults to YES
官方的解釋是這個(gè):
A Boolean value that indicates whether the view controller should automatically adjust its scroll view insets.
這個(gè)屬性決定了ViewController是否自動(dòng)的去設(shè)置ScrollView的insets去顯示ScrollView,默認(rèn)為YES這就解釋了之前的問(wèn)題谢揪。因?yàn)閂iewController自動(dòng)的去設(shè)置了tableView的insets使tableView得以正常的顯示蕉陋。