IOS對於控件用相對布局的方式


這樣判斷會死人的啊。


.xcode4.5不再支持armv6即:iOS4.3.3以下的系統.

不被支持的硬件設備包括:iPod 2nd gen, iPhone 3G 或更老的iPhone

例如我打包時的錯誤提示就是:

warning: iOS deployment targets lower than 4.3 are not supported (current IPHONEOS_DEPLOYMENT_TARGET = "4.0", ARCHS = "armv7").

(null):  iPhone/iPod Touch: application executable is missing a required architecture.  At least one of the following architecture(s) must be present: armv6 (-19033)
因為喜歡用Block,所以我開發的東東,一般最低都支持iOS4.0,看來是蘋果逼着開發者和用戶升級啊。

5.奉上一段判斷iPhone的代碼

#define iPhone5 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 1136), [[UIScreen mainScreen] currentMode].size) : NO)

用時候直接

if (iPhone5) ooxx

就可以了。

另外,如果代碼寫界面的話,在iPhone5下View的高是568喲~

6.關於xib自適應的問題

默認的話,如果你的界面上包含scrollview/TableView的話,這個界面基本上是不用改的,因為中間部分會自動拉伸。如果不包含這兩個全屏 的控件的話,怕是要自已再添加一個專門針對iPhone5的xib了。辦法很簡單,新建一個xib文件,將里面view的size設置成Retina 4 Full Screen就可以了。上面已經提到怎么判斷iPhone5了,怎樣讀取不同的xib文件不用上代碼了吧?

7.關於屏幕旋轉(iOS5的時候就出過一次狀況,這次又來)

要深入理解這個問題,還需要您自已親自做一些實驗,iOS6取消了一個api,增加了兩個api,但是這一去一加滿足不了我的情況:應用在所有的界面都是豎屏,只在一個屏幕是橫屏。就這一個情況要實現費了我半天的功夫。只說一下我最后怎么實現的。

首先:這橫屏的xib里面的view就是橫的

其次:屏幕適應只支持橫屏

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{
  return UIInterfaceOrientationIsLandscape(interfaceOrientation);
}

第三:在這個view是present出來的

第四:viewDidLoad里隱藏狀態欄

- (void)viewDidLoad{
  if (IOSSystemVersion >= 5.0) {
    //5.0及以后,不整這個,界面錯位 整這個帶動畫的話,容易看到一個白頭
    [[UIApplication sharedApplication] setStatusBarHidden:YES];
  }
}

第五:viewWillAppear自已將view旋轉90度

- (void)viewWillAppear:(BOOL)animated{
  [super viewWillAppear:animated];
  [UIView animateWithDuration:0.0f
                   animations:^{
                     [self.view setTransform: CGAffineTransformMakeRotation(M_PI / 2)];
                     if (iPhone5) {
                       self.view.frame = CGRectMake(0, 0, 568, 320);
                     }
                     else{
                       self.view.frame = CGRectMake(0, 0, 480, 320);
                     }
                   }];
}

 

 

 

平時布局的時候盡量不要寫死,取得屏幕大小用[UIScreen mainScreen].bounds,我是這樣處理的。

 

 

 

   
適配iphone5的話 需要適配1136*640的分辨率 如果你什么都不改 雖然iphone5會兼容,但是會出現上下都是黑邊(看電影的)那種模式。。。這並不是適配
如果想在iphone5全屏 就要做適配工作 添加一張1136*640的default啟動大圖,然后程序有320 480的地方得改成動態獲取的 比如[UIScreen mainscrell].bounds.width  或height。。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM