手頭維護的乙個老專案,因為需要從ios5.1開始支援,所以在頁面適配上基本上使用硬編碼和autoresizemask來實現iphone4~iphone5s的適配,情況看起來還算不錯。到了iphone6以及以上的機型情況就有些不同了。
在補充了iphone6的default page之後,很多頁面右邊出現黑黑的一塊,適配出現了很嚴重的問題。
1、初步定位問題出在320這種硬編碼的上,檢索了一下,將320都處理成super.view.bounds.size.width / containerview.bounds.size.width。
跑了下,部分頁面修復了,但是很多containeriview依然我行我素,還是維持320的體寬。。。跪了。
2、查斷點排查了下congtainerview們初始化的情況,發現在viewdidload,以及loadview中獲取的self.view.bounds.size是xib的原始值。問題定位到,一切就輕鬆了很多。
view初始化依然丟在viewdidload或者loadview中不去動他。新增viewdidlayoutsubview delegate function,在viewdidlayoutsubview中獲取到正確的self.view.bounds.size,並以此配置子容器檢視的幾何屬性。
在跑一遍,恩恩,效果很不錯。整體上來看已經適配正確。
剩下就是調整一些控制項的適配。
3、自定製view,控制項的適配:在控制項.m檔案中新增-(void)layoutsubview方法,將原來**中硬編碼的寬度解開,依據父檢視來確定自身的幾何屬性。
再跑一遍,well done。
總結,在viewcontroller中,不要在viewdidload中取獲取view的size,此時獲取到的大小是storyboard或者xib中的大小。以此做的布局是要出問題的。
正確的時機:viewcontroller是在viewdidlayeroutsubview;view是在layoutsubview;layer是在layoutsublayer。
iPhone6 和iPhone6plus 快速適配
現在由於蘋果公司出了6和6plus,讓寫蘋果程式的哥們為了做相容很頭疼。用storyboard固然方便,但是後期做相容要花費太多的時間和精力。使用autolayout雖然會在不同尺寸的螢幕下自動布局,但是很多東西還是要自己手動修改,而且使用autolayout的話有乙個弊病,就是無法通過 來修改st...
iPhone6,更為完美
最新訊息稱,蘋果打算今年晚些時候在自動化生產線上生產其所有的iphone電池。這一舉動可以降低人力需求,將生產鏈資源轉移到其他方面。訊息表示,蘋果mac pro和imac已實現自動化生產,除了材料和最後的組裝,mac pro和imac的生產無需任何人力。該舉動會有助於蘋果iphone6的生產,此前訊...
iphone6螢幕適配
經新xcode6模擬器驗證 解析度為pt,畫素為真實pixel iphone5解析度320x568,畫素640x1136,2x iphone6解析度375x667,畫素750x1334,2x iphone6 plus解析度414x736,畫素1242x2208,3x,注意,在這個解析度下渲染後,影象...