IOS对于控件用相对布局的方式

简介: 这样判断会死人的啊。 .xcode4.5不再支持armv6即:iOS4.3.3以下的系统. 不被支持的硬件设备包括:iPod 2nd gen, iPhone 3G 或更老的iPhone 例如我打包时的错误提示就是: warning: iOS deployment targets lower than 4.

这样判断会死人的啊。


.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。。。。
相关文章
|
Swift iOS开发 开发者
iOS - 跳转App Store下载 app 的两种方式
iOS - 跳转App Store下载 app 的两种方式
1897 0
iOS - 跳转App Store下载 app 的两种方式
|
7月前
|
iOS开发
iOS 多个滚动控件嵌套Demo
iOS 多个滚动控件嵌套Demo
38 0
|
11月前
|
iOS开发
iOS短信验证码控件,自动输入回调两次解决办法
iOS短信验证码控件,自动输入回调两次解决办法
307 0
|
12月前
|
iOS开发
IOS的UITableView控件简单使用
IOS的UITableView控件简单使用
124 0
|
敏捷开发 安全 Unix
iOS开发 - 在实战中挖掘之线程间的通信方式
iOS开发 - 在实战中挖掘之线程间的通信方式
153 0
|
移动开发 JavaScript weex
weex-自定义module,实现weex在iOS的本地化,js之间互相跳转,交互,传值(iOS接入weex的最佳方式)
weex-自定义module,实现weex在iOS的本地化,js之间互相跳转,交互,传值(iOS接入weex的最佳方式)
219 0
|
iOS开发
iOS开发 - 写一个刷新的控件(未封装,适合新手学习,查看原理)
iOS开发 - 写一个刷新的控件(未封装,适合新手学习,查看原理)
127 0
iOS开发 - 写一个刷新的控件(未封装,适合新手学习,查看原理)
|
Android开发 iOS开发
iOS开发 - 商品详情页两种分页模式,只提供思路和实现方式。
iOS开发 - 商品详情页两种分页模式,只提供思路和实现方式。
354 0
iOS开发 - 商品详情页两种分页模式,只提供思路和实现方式。
|
iOS开发
iOS开发-加在透明视图上的控件会透明
iOS开发-加在透明视图上的控件会透明
112 0
|
安全 iOS开发
iOS小技能:下拉刷新控件的适配
1. 下拉顶部背景色设置: 往tableView的父控件添加拉伸背景视图 2. present 半屏适配 iOS13 modalPresentationStyle属性默认不是全屏样式`UIModalPresentationFullScreen`,而是半屏样式,需要根据需求手动设置。 present 半屏,会导致列表下拉刷新失效。
156 0
iOS小技能:下拉刷新控件的适配