iphone有关旋转和自动调整大小

指定旋转支持

 

在xcode中一个基于视图的应用程序中,模板会提供一个名为shouldAutorotateToInterfaceOrientation:的方法。

如下所示:

 

 

 

 

系统能过调用此方法询问视图控制器是否应该旋转到指定方向。系统共定义了4种文献,分别对应气质iphone的4种常见

方式:

 

UIInterfaceOrientationPortrait

UIInterfaceOrientationPortraitUpsideDown

UIInterfaceOrientationLandscapeLeft

UIInterfaceOrientationLandscapeRight

 

当电话的方向发生更改时,系统将调用此方法来损伤视图控制器。interfaceOritentation参数将包含上上述4个值之一,并且此方法需要返回YES或NO,以指示是否应该旋转应用程序的容器以匹配新的方向。

 

 

使用自动调整属性设计界面

 

在xcode中,展开resource文件夹,双击项目xib文件,在Interface Builder中打开该文件。使用自动调整属性的一个好处在于,

它们需要的代码极少。当然事先我们必须要指定支持的方向,之后实现此技术所需的其他所有工作将在Interface Builder中完成。

 

可以看xcode中的show the size inspector,Autosizing一栏就是用来配置此功能的。

左侧是设置对象可自动调整属性的方向,内部的正方形表示当前的对象,其中的红色箭头表示选定对象内部的水平和垂直空间。

单击做生意箭头都可将其由实线变为虚线(实线表示可自由更改,虚线表示尽量保持为原始值)。

正方形外部的4个相红色实线表示对象与其它视图的边距(实线表示尽可能不变,虚线表示可变)。

 

所以只要适当的设置好线的虚实,就可以达到对象自动调整布局的效果。

 

 

当然,有的时候,上面的设置也没法使用对象在旋转后仍然保持很好的布局,这时候就要使用代码来调整,

在旋转的时候重构视图。

 

示例代码如下:

 

 

 

 

项目中覆盖了willAnimateSecondHalfOfRotationFromInterfaceOrientation:duration:方法。此方法将在旋转开始之后,最后的旋转动画发生之前自动调用。

还有一个名为willAnimateFirstHalfOfRotationFromInterfaceOrientation:duration的方法,该方法中的更改将在旋转动画发生

之前完成,该方法是专为应该在旋转动画完全完成之前发生的更改而设计的。在本例中,我们需要按钮在旋转完成的同时移动到它们的新位置,这已经我们选择second-half方法的原因。

 

 

切换视图

 

还可以通过另一种方式来处理自动旋转,这种方式可能仅适用于非常复杂的界面。

简章解释一下:

 

 

从上面的代码里应该可以看出来,就是在旋转到不同方向的时候加载不同的view,达到自动调整的效果。

有时候需要设置程序启动时的orientaion,可以在程序的info.plist文件里新建一行,key设置为intial interface orientation,然后设置orientation的值,

这样当程序启动时,就是设置好的orientation。


 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值