http://www.cnblogs.com/APTX4869/archive/2011/02/24/1963527.html
1,去掉StatusBar
在info.plist添加UIStatusBarHidden设置Boolean,设置为YES.
2,横屏
持续在info.list中添加UIInterfaceOrientation 设置UIInterfaceOrientationLandscapeRight
3,重力感应
AppDelegate持续UIAccelerometerDelegate和谈,并实现
// Implement this method to get the lastest data the accelerometer
- (void)accelerometer:(UIAccelerometer*)accelerometer didAccelerate:(UIAcceleration*)acceleration {
//Use a basic low-pass filter to only keep the gravity in the accelerometer values{}
在
- (void)applicationDidFinishLaunching:(UIApplication *)application {
}
添加
//Configure and start accelerometer
[[UIAccelerometer sharedAccelerometer] setUpdateInterval:(1.0 / kAccelerometerFrequency)];
[[UIAccelerometer sharedAccelerometer] setDelegate:self];
就可以实现重力感应
4,主动切换反正。
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation //支撑横 竖迁移转变
{
return YES;
}
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration //当产生扭转 时
{
f(self.interfaceOrientation==UIInterfaceOrientationPortrait||self.interfaceOrientation==UIDeviceOrientationPortraitUpsideDown)
{
//横 转向 竖
}
}
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)InterfaceOrientation //扭转 完成
{ if(self.interfaceOrientation==UIInterfaceOrientationPortrait||self.interfaceOrientation==UIDeviceOrientationPortraitUpsideDown)
{
//当前是在竖屏模式
}
}
横屏之间切换
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation //支撑横 竖迁移转变
{
if (interfaceOrientation == UIInterfaceOrientationLandscapeRight )
{
return YES;
}
else if (interfaceOrientation == UIInterfaceOrientationLandscapeLeft)
{
return YES;
}
return NO;
}
/
以下未经过测试
应用重力感应,断定手机的标的目标,然后设定[UIApplication sharedApplication].statusBarOrientation = UIInterfaceOrientationLandscapeRight,以及UIInterfaceOrientationPortrait,就可以做到按照不合的手机标的目标弹出横屏还是竖屏的对话框了,包含对话框上包含输入框的键盘也可以主动扭转了
/
5,开机画面横屏
Default-LandscapeLeft.png
Default-LandscapeRight.png
Default-Portrait.png
Default-PortraitUpsideDown.png
1,去掉StatusBar
在info.plist添加UIStatusBarHidden设置Boolean,设置为YES.
2,横屏
持续在info.list中添加UIInterfaceOrientation 设置UIInterfaceOrientationLandscapeRight
3,重力感应
AppDelegate持续UIAccelerometerDelegate和谈,并实现
// Implement this method to get the lastest data the accelerometer
- (void)accelerometer:(UIAccelerometer*)accelerometer didAccelerate:(UIAcceleration*)acceleration {
//Use a basic low-pass filter to only keep the gravity in the accelerometer values{}
在
- (void)applicationDidFinishLaunching:(UIApplication *)application {
}
添加
//Configure and start accelerometer
[[UIAccelerometer sharedAccelerometer] setUpdateInterval:(1.0 / kAccelerometerFrequency)];
[[UIAccelerometer sharedAccelerometer] setDelegate:self];
就可以实现重力感应
4,主动切换反正。
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation //支撑横 竖迁移转变
{
return YES;
}
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration //当产生扭转 时
{
f(self.interfaceOrientation==UIInterfaceOrientationPortrait||self.interfaceOrientation==UIDeviceOrientationPortraitUpsideDown)
{
//横 转向 竖
}
}
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)InterfaceOrientation //扭转 完成
{ if(self.interfaceOrientation==UIInterfaceOrientationPortrait||self.interfaceOrientation==UIDeviceOrientationPortraitUpsideDown)
{
//当前是在竖屏模式
}
}
横屏之间切换
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation //支撑横 竖迁移转变
{
if (interfaceOrientation == UIInterfaceOrientationLandscapeRight )
{
return YES;
}
else if (interfaceOrientation == UIInterfaceOrientationLandscapeLeft)
{
return YES;
}
return NO;
}
/
以下未经过测试
应用重力感应,断定手机的标的目标,然后设定[UIApplication sharedApplication].statusBarOrientation = UIInterfaceOrientationLandscapeRight,以及UIInterfaceOrientationPortrait,就可以做到按照不合的手机标的目标弹出横屏还是竖屏的对话框了,包含对话框上包含输入框的键盘也可以主动扭转了
/
5,开机画面横屏
Default-LandscapeLeft.png
Default-LandscapeRight.png
Default-Portrait.png
Default-PortraitUpsideDown.png