這幾天蘋果發(fā)布了iOS11和xcode9蓬推,為了盡快符合規(guī)范,所以下載了xcode9幻锁,因?yàn)槲覀兊捻?xiàng)目是用swift開發(fā),所以边臼,每次升級(jí)總是會(huì)讓你頭疼腦熱哄尔,因?yàn)閟wift也發(fā)布了新版本,這次swift發(fā)布的新版本改動(dòng)不是很大柠并,沒有像之前2.3到3.0那樣讓我頭疼了兩天岭接,但是當(dāng)我看到iphoneX的模擬器的時(shí)候,心里突然感覺到了一陣惡心臼予,不知道蘋果怎么會(huì)做出這樣畸形的屏幕鸣戴,但是沒有辦法啊,畢竟這是別人的東西粘拾,別人就是爸爸窄锅,爸爸說(shuō)讓你們?cè)趺醋觯銈兙偷迷趺醋鲧止汀O旅骈_始正題酬滤,在適配的過(guò)程中遇到的問(wèn)題我都會(huì)一一記錄下來(lái)签餐,希望可以幫助到有需要的人。
剛下載好xcode9盯串,改完了所有惡心的紅點(diǎn)氯檐,就迫不及待的運(yùn)行了一下項(xiàng)目,想看看我們的項(xiàng)目在iphoneX上面運(yùn)行會(huì)是個(gè)什么逼樣体捏,果然一運(yùn)行冠摄,有些地方還是出現(xiàn)了變形的一幕,但是情況還是挺不錯(cuò)的几缭,大部分頁(yè)面居然完美匹配了河泳。
正如標(biāo)題,因?yàn)樵趇phoneX上面年栓,導(dǎo)航欄的高度增高了不少拆挥,所以有些頁(yè)面出現(xiàn)了被導(dǎo)航欄遮擋住的問(wèn)題。
至于為什么會(huì)出現(xiàn)這個(gè)問(wèn)題呢某抓,這是我自己犯下的一個(gè)錯(cuò)誤纸兔,可以說(shuō)是代碼的不規(guī)范造成的,相信會(huì)有部分的小伙伴也會(huì)遇到這樣的問(wèn)題否副,然后也是像我這樣處理汉矿,所以寫了這篇文章,希望可以幫助到有需要的小伙伴备禀,以后用更好的方法去開發(fā)應(yīng)用洲拇。
我們?cè)诰帉慤I頁(yè)面的時(shí)候,經(jīng)常會(huì)遇到:
比如我們往頁(yè)面上添加一個(gè)view曲尸,這個(gè)時(shí)候我們回去設(shè)置它的frme赋续,然后位置x,y都是從0開始另患,但是當(dāng)我們寫好代碼之后運(yùn)行蚕捉,就會(huì)發(fā)現(xiàn),我們添加的這個(gè)view被導(dǎo)航欄遮擋住了一部分柴淘,而這部分恰好就是導(dǎo)航欄的高度,所以之前我們不知道怎么處理的時(shí)候往往會(huì)將view的y坐標(biāo)直接從64開始秘通,將導(dǎo)航欄的高度空余出來(lái)为严。
如果是在之前,這樣的做法確實(shí)看不出來(lái)什么問(wèn)題肺稀,因?yàn)榍懊嫣O果的機(jī)型第股,導(dǎo)航欄都是64的高度,但是话原,在我們要去適配iphoneX的時(shí)候夕吻,導(dǎo)航欄的高度不在是64的高度诲锹,這個(gè)時(shí)候再去將view的y坐標(biāo)設(shè)置為從64開始,在iphoneX上面運(yùn)行的時(shí)候同樣會(huì)被遮擋住一部分涉馅,但是我們又總不可能對(duì)這個(gè)機(jī)型單獨(dú)去做適配吧归园。
其實(shí)蘋果爸爸已經(jīng)給出了這個(gè)處理辦法的,在iOS7以后稚矿,可以添加一句代碼設(shè)置view的有效位置:
這句代碼的意思就是從導(dǎo)航欄下面開始有效位置一直到屏幕的底部庸诱,同理,有這樣的幾個(gè)屬性可以根據(jù)不同的需求設(shè)置不同的屬性:
解決問(wèn)題的辦法很簡(jiǎn)單晤揣,有需要的小伙伴可以自己去試試桥爽。