IOS自动旋转

来源:未知 责任编辑:责任编辑 发表时间:2014-01-06 18:19 点击:

 iphone中很多应用都是可以根据你手机旋转的方向自适应屏幕的方向,当然不是所有的应用都支持这个功能,这个具体是看应用开发人员有没有开发相应的功能,需要不
      需要这个功能也得看具体情况和需求,但是有一点请相信,实现这种效果并不难。本文就从一个入门的新手出发写一下我对这方面的学习总结。
    Iphone4,4s在竖直放的时候,视图高是480#px,宽是320#px,如果加状态栏高就是460px,横放的时候,高是320px,宽是480px,加状态栏高是300px.
     三种实现方式:1、所有对象的自动调整,
                2、手动调整对象的位置
                3、为应用开发不同方向上的视图版本。
    无论使用哪种方法都需要覆盖UIViewController的方法。
    当手机方向发现改变的时候 ,系统会调用shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientataion interfacetion)来询问应用是否支持
对应方向的改变,支持就返回true,默认的实现只支持一个方向上的,也就是禁止了自动旋转的功能。要想开启就在想支持的方向上返回true即可。

我现在的学习环境是mac10.8,xcode4.5,在此时IOS是6.0,在IOS6.0中已经废弃了shouldAutorotateToInterfaceOrientation方法,所以也就不有上在的覆盖方法
了,那么它是通过什么方式来做到让应用在相应方向上是否支持自动旋转呢,我觉得是在这里。

 四个方向上的旋转支持,默认是四个方向都支持的,如果只想支持某个方向或者某些方向,选择相应的方向就可以了,那里的设置能自动对四个方向上的旋转支持,但不支持upsidedown方向上的,要想能支持还得在程序中做。实现方式如下大概:
只支持portait,不能旋转:

-(BOOL)shouldAutorotate
{
    return NO;
}

支持旋转:
-(BOOL)shouldAutorotate
{
    return YES;
}
-(NSUInteger)supportedInterfaceOrientations{
  
    return UIInterfaceOrientationMaskLandscape; //UIInterfaceOrientationMaskLandscape、UIInterfaceOrientationMaskAll、 UIInterfaceOrientationMaskAllButUpsideDown
}

考虑到兼容低版本,最好加上:
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
    return YES;
}

简单说明:
UIInterfaceOrientationMaskLandscape  支持左右横屏

UIInterfaceOrientationMaskAll  支持四个方向旋转

UIInterfaceOrientationMaskAllButUpsideDown 支持除了UpsideDown以外的旋转


1、自动调整属性来适应自动旋转
这个方式的实现不用我们编写代码,只要在interface builder中设置即可,

说到interface builder 不知道IOS6.0以前是什么样的,IOS6.0里面是有个Storyboards,它是interface builder的的升级一样,比它更好用一些,
同时IOS6下新建的项目默认是自动垃圾回收的,所以不想用S#toryboards和自动垃圾回收的话,就得在新建项目的时候 ,在这里把勾去掉,如下图。

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • Lexical or Preprocessor Issue 'xxx.h
  • ios学习笔记(二)xcode 4.3.2下实现基本交互
  • ios版本的helloworld
  • iphone(object-c) 内存管理(3) 有效的内存管理 前半部分
  • ios学习笔记(一)xcode 4.3.2下创建第一个ios项目
  • UITableView一些方法
  • IOS类似iphone通讯录TableView的完整demo【附源码】
  • [iPhone中级]iPhone团购信息客户端的开发 (二)
  • iphone(object-c)内存管理(1)
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1