IOS自动旋转(2)
在xcode4.5中,默认自动已经是自旋转的,要调旋转时控件的方向,选择控件,如下图,定位Size Inspector 视图
在xcode4.5中少的自调整的一块AutoSizing,只要在File Inspector 把Use Autolayout去掉即可,如下图
去掉之后Size Inspector视图会变成如下样子。
这后自动调整在手机方向改变的时候,对象根着改就是在Auotsizing 这里了,左边是能调整对象大方向改变时,对象位置的改变和大小的改变,右边是能看到设置后的效果,效果是手机横放时的效果。
左边外边的I是说设置对象的位置,当实现的时候保持不变,当虚线的时候是可变的。
里面的键头表示对象大小,当实现的时候会改变,当虚线的时候保持不变。也就是说如果能改变对象的大小,在自动调整的时候会自动调整它的大小来满足显示的需求。
这样的自动调整属性在很多情况下是不能满足需求,只能适当的改变对象自动调整的位置,还有就是能改变大小时,它自动改变大小来适应显示,但可能不是想要的显示效果。这时候可能通过写程序手机指定对象的位置,那样会更加的灵活 .
2、手动调整对象的位置
手动的意思就是在通过代码的实现来调整对象的位置,大小等等需求。在xib中当然得把对象连接到程序当中的变量当中去。
2.1、通过interface builder把控件连接到类的变量中简单直接拖就可以了。如下图。
指定了之后,比如要在旋转的时候要改变对象的排版等,那就要调用相应的方法, IOS中当然已经有在手机旋转的时候会触发相应的的函数。这里就用这个willAnimateSecondHalOf....方法,
也能用willAnimateFirstHalfOf, 这个方法会在旋转开始的时候和结这段时间内调用完成,但是在我用的ios6中我发现这两个方法都是被废弃掉了,所以我用了willAnimateRotationToInterfaceOrientation这个方法代替做这两个方法的功能。
也能实现相同的效果,可能官方就是用这个方法来代替吧,我也没怎么查资料,新手开始 学,不怎么清楚的。willAnimateRotationToInterfaceOrientation方法的实现可以根据自己需要去实现。
3、为不同方向制定界面
有些时候前面两种方法不是最好的方法,第三种方式就是为不同方向上开发不同的界面,在用到要建多个view的时候,有的view是橫放,所以是宽是480,高300,但是发现没办法改变view的大小, 书上说新建一个就可以,但是发现也没办法改变,最后通过在这里设置横向,
然就在带状态栏就做到效果了,还有没有其它方法没有去寻找。
最后贴点代码结束旋转的学习结果
-(IBAction)buttonPressed:(id)sender{
NSLog(@"test");
if(sender== view1Button1|| sender == view2Button1){
view1Button2.hidden= YES;
view2BUtton2.hidden= YES;
}else{
view1Button1.hidden= YES;
view2Button1.hidden= YES;
}
}
-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientationduration:(NSTimeInterval)duration{
NSLog(@"aaa");
NSLog(@"%d",toInterfaceOrientation);
NSLog(@"%d",toInterfaceOrientation== UIInterfaceOrientationPortraitUpsideDown);
if(toInterfaceOrientation== UIInterfaceOrientationPortrait){
相关新闻>>
- 发表评论
-
- 最新评论 更多>>