六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 107|回复: 0

三十而立,从零开始学ios开发(八):Autorotation and Autosizing

[复制链接]

升级  1.33%

16

主题

16

主题

16

主题

秀才

Rank: 2

积分
52
 楼主| 发表于 2013-1-4 01:36:45 | 显示全部楼层 |阅读模式
<div id="cnblogs_post_body">不好意思,这一篇间隔的时间有点长,最近实在是事情太多,耽搁了,好了,长话短说,下面继续学习ios。
这次学习的内容是Autorotation和Autosizing,Autorotation就是屏幕内容自动旋转,因为iphone有重力感应系统(陀螺仪???),屏幕的内容会随着用户手握iphone的方式(竖着握Portrait、横着握Landscape)而改变,这个相信大家都已经有所体会,Autosizing是指当iphone的屏幕旋转后,屏幕里面控件的大小和位置也会自动改变。好了,下面跟着例子继续学习。
1)创建一个Single View项目,并命名为Autosize。
2)配置app所支持的旋转方向
当完成一个项目创建后,默认状态下,在Project Navigator中,会选中项目的根节点,如下

当根节点选中后,在其右侧Summary tab中找到叫做“Supported Device Orientations”(设备所支持的方向)的区域,在这个区域中,就是用来设置iphone所支持的旋转方向的。

可以看到,一共有4个方向(其实也只有这4个方向),根据进行设置,在我们的这个例子中,就保持默认状态即可,一般情况下,app很少会去选择“Upside Down”,一般来说很少有人会倒着拿手机,除了有特殊情况外。
除了上面的方法可以设置app支持的旋转方向外,还有一个地方可以设置,在Project Navigator中的“Supporting Files”下,选中Autosize-Info.plist。

然后找到“Supported interface Orientations”并展开,会看到3个Item,分别对应刚才图中选中的三个旋转方向

如果想要添加一个新的方向,只要鼠标放在某一个Item上,在这个Item的右边会有一个加号和一个减号,点击加号增加一个Item,点击减号删除一个Item。

可以随意添加或者删除里面的Item,然后在回到Summary tab中看,Summary tab中的“Supported Device Orientations”会随之改变,这两个地方是保持联动的,其实xxx-Info.plist和Summary tab是同一个东西,只是显示的方法不同,Summary tab使用图形界面控制,xxx-Info.plist使用文字。
3)代码中判断app是否支持某种旋转方向
在BIDViewController.m中,有一个默认的方法叫做shouldAutorotateToInterfaceOrientation
<div class="cnblogs_code">- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{    // Return YES for supported orientations    return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);}
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表