IOS之Autorotation and Autosizing

UIInterfaceOrientationPortrait: 正常

UIInterfaceOrientationPortraitUpsideDown: 转180度

UIInterfaceOrientationLandscapeLeft: 向左转90度

UIInterfaceOrientationLandscapeRight: 向右转90度


1.      创建一个名为AutoSize项目后,单击AutoSizeViewController.m,可看到模板已提供了一个名为shouldAutorotateToInterfaceOrientation的方法。

2.      系统通过调用此方法询问视图控制器是否旋转到指定方向。

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {

    return (interfaceOrientation == UIInterfaceOrientationPortrait);

}

 

3.      interfaceOrientation参数将包含以下四个值之一,并且此方法需要返回YESNO,以指示是否应该旋转应用程序的窗口以匹配新的方向。由于每个视图控制器子类实现此方法的方向各不相同,因此一個应用程序可能仅支持旋转部分视图,而不支持旋转其它视图。

UIInterfaceOrientationPortrait

UIInterfaceOrientationPortraitUpsideDown

UIInterfaceOrientationLandscapeLeftUIInterfaceOrientationLandscapeRight

4.      若要启动自动旋转,只需將方法更改为对传入的任何值都返回YES。如

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {

    return YES;

}

5.      若只想支持其中的一部分方向,则必须检查interfaceOrientation的值,对想要支持的值返回YES,对不想支持的值返回NO。例如要支持两个方向中的从向模式和橫向模式,但不支持旋转到倒置的纵向模式,代码如:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {

    return (interfaceOrientation == UIInterfaceOrientationPortrait ||

                        interfaceOrientation==UIInterfaceOrientationLandscapeLeft ||

                        interfaceOrientation==UIInterfaceOrientationLandscapeRight );

}

UIInterfaceOrientationPortrait: 正常

UIInterfaceOrientationPortraitUpsideDown: 转180度

UIInterfaceOrientationLandscapeLeft: 向左转90度

UIInterfaceOrientationLandscapeRight: 向右转90度


posted @ 2011-08-19 22:11  熊波  阅读(2920)  评论(0编辑  收藏  举报