关于iphone和ipad横屏竖屏 适配问题

首先 先在viewWillAppear 里面 注册通知

- (void)viewWillAppear:(BOOL)animated

{

[super viewWillAppear:animated];

//注册屏幕旋转 消息通知

[[NSNotificationCenter defaultCenter] addObserver:self

selector:@selector(changeFrames:)

name:UIDeviceOrientationDidChangeNotification

object:nil];

}

在viewDidLoad 初始化控件

收到通知后

//收到通知后改变view坐标

-(void)changeFrames:(NSNotification *)notification

{

CGRect rect = [UIScreen mainScreen].bounds;

if ([[UIDevice currentDevice] orientation]==UIInterfaceOrientationPortrait

|| [[UIDevice currentDevice] orientation]==UIInterfaceOrientationPortraitUpsideDown)

{

NSLog(@"portrait");

_fancyTabBar.frame=CGRectMake(rect.size.width-300,rect.size.height-300, 300, 300);

}

else

{

NSLog(@"横屏");

_fancyTabBar.frame=CGRectMake(rect.size.height-40,rect.size.width-550, 300, 300);

}

}

如果是ipad 版

//收到通知后改变view坐标

-(void)changeFrames:(NSNotification *)notification

{

CGRect rect = [UIScreen mainScreen].bounds;

if ([[UIDevice currentDevice] orientation]==UIInterfaceOrientationPortrait)

{

NSLog(@"竖屏home在下");

_fancyTabBar.frame=CGRectMake(rect.size.width-550,rect.size.height-550, 600, 700);

}

else if ([[UIDevice currentDevice] orientation]==UIInterfaceOrientationPortraitUpsideDown)

{

NSLog(@"竖屏home在下");

_fancyTabBar.frame=CGRectMake(rect.size.width-550,rect.size.height-550, 600, 700);

} else if ([[UIDevice currentDevice] orientation] == UIDeviceOrientationLandscapeLeft ){

NSLog(@"横屏home在左");

_fancyTabBar.frame=CGRectMake(rect.size.height-300,rect.size.width-800, 600, 600);

} else{

NSLog(@"横屏home在右");

_fancyTabBar.frame=CGRectMake(rect.size.height-300,rect.size.width-800, 600, 600);

}

}

时间: 2024-10-12 06:06:00

关于iphone和ipad横屏竖屏 适配问题的相关文章

HTML5中判断横屏竖屏

HTML5中判断横屏竖屏 在移动端中我们经常碰到横屏竖屏的问题,那么我们应该如何去判断或者针对横屏.竖屏来写不同的代码呢. 这里有两种方法: 一:CSS判断横屏竖屏 写在同一个CSS中 1 2 3 4 5 6 @media screen and (orientation: portrait) {   /*竖屏 css*/ } @media screen and (orientation: landscape) {   /*横屏 css*/ } 分开写在2个CSS中 竖屏 1 <link rel=

Android学习笔记(三六):横屏竖屏的切换

1.准备环境 对模拟器,只要“Ctrl+F12“,就可以可以实现竖屏(portrait)和横屏(landscape)的切换. 2.UI的屏幕切换实现 下面一个简单的例子,如图. 我们需要写两个Android XML文件,假定文件为chapter_19_test1.xml,放在常规目录位置layout/内容如下: [plain] view plaincopy <?xml version="1.0" encoding="utf-8"?> <Linear

【转】Android 模拟器横屏竖屏切换设置

http://blog.csdn.net/zanfeng/article/details/18355305# Android 模拟器横屏竖屏切换设置时间:2012-07-04   来源:设计与开发   作者:Daniel   点击:5571 摘要:  Android 模拟器旋转,横屏.竖屏切换设置,android 横屏布局,android 横屏模式,android 模拟器,android 模拟器横屏,android 模拟...       Android 模拟器旋转,横屏.竖屏切换设置,andr

Phonegap 禁止手机横屏竖屏自动旋转

方法: 在AndroidManifest.xml的<activity>标签里面加入下面代码 android:screenOrientation=”portrait”属性即可(portrait是纵向,landscape是横向),事例代码如下: <activity android:name="com.example.test.MainActivity" android:label="@string/app_name" android:screenOri

Android之横屏竖屏显示问题

1.采用不同的布局文件 res文件下 选中layout  Ctrl+C 选中res Ctrl +V 创建layout-land横屏显示的layout 同理创建layout-port竖屏显示的layout 图片横屏竖屏 选中drawable-xhdpi Ctrl+C 选中res Ctrl + V 创建drawable-land-xhdpi 其他分辨率的也一样 字符串 values-land values-port 另外:(layout文件夹也可以使用hdip,mdip等关键字命名如layout-h

手机横屏竖屏css

@media是css3中新定义的,功能非常强大,顾名思义PC是无法匹配横竖屏的,所以orientation只对移动设备起效. 1.头部声明 复制代码 代码如下: <meta name="viewport" content="width=device-width, initial-scale=1.0,user-scalable=no,maximum-scale=1.0"> 加到 复制代码 代码如下: <head></head> 2.

cocos2d-x 设置屏幕方向 横屏 || 竖屏

cocos2d-x 设置屏幕方向 横屏 || 竖屏 需要根据各个平台分别进行设置. android 修改项目根目录 proj.android\AndroidManifest.xml 文件中的android:screenOrientation属性值,portrait 为竖屏,landscape为横屏 Windows 直接用cocos引擎接口中的GLView::createWithRect方法指定窗口大小,需要注意的是,该方法在android环境下会报错,并导致程序崩溃,所以我们需要在代码里面这么写

移动端判断横屏竖屏

1. CSS判断横屏竖屏 写在同一个CSS中 @media screen and (orientation: portrait) { /*竖屏 css*/} @media screen and (orientation: landscape) { /*横屏 css*/}分开写在2个CSS 竖屏<link rel="stylesheet" media="all and (orientation:portrait)" href="portrait.css

Cocos2dx开发windows phone时,VS2013设置为横屏竖屏问题

1.首先打开自己的windows phone的项目: 2.把项目打开,可看到如下的结构: 3.然后点击MainPage.xaml文件,可以看到如下结构: 然后左边是显示的模拟器,右边是代码,Landscape表示的是横屏,Portrait表示的是竖屏,如图所示: 这样就可以设置横屏竖屏了,如果你只是点击模拟器中的旋转来调试横屏竖屏,根本就没用,还是要代码才能解决吧: 这是在移植wp8的时候一些总结,在移植过程中,各种坑爹的语法都有,有些改了就可以用了,但也许你不知道为什么, 哈哈,真是,可能是兼