粉笔司考ipad怎么竖屏调成竖屏

电脑教程子分类主题 : iPad下ios7的app.window一直是竖屏,怎么设置横屏
级别: 圣骑士
UID: 374176
可可豆: 2980 CB
威望: 2532 点
在线时间: 423(时)
发自: Web Page
来源于&&分类
iPad下ios7的app.window一直是竖屏,怎么设置横屏&&&
做一个iPad项目,只有横屏,但是在project下和plist下都设制iPad只有left横屏设置,模拟器弹出来也是横屏,但是调用app.window时width=768,[UIScreen mainScreen].bounds.size.width也是768
级别: 新手上路
UID: 404468
可可豆: 94 CB
威望: 86 点
在线时间: 67(时)
发自: Web Page
回 楼主(JasonHuang) 的帖子
楼主问题解决了吗 怎么处理这种情况
级别: 侠客
UID: 331913
可可豆: 407 CB
威望: 344 点
在线时间: 520(时)
发自: Web Page
因为iOS7(包括iOS7)之前,屏幕翻转后[UIScreen mainScreen].bounds.size.height/width的值都是不变化的换言之不管你怎么转,他的值宽都是768,直到iOS8,翻转后的宽和高才随之改变,你可以这样获取实际宽和高来修改你的视图- (BOOL)isLandscape {&&&&UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation];&&&&return orientation == UIInterfaceOrientationLandscapeLeft&&&&|| orientation == UIInterfaceOrientationLandscapeR}- (void)practicalFrame {&&&&&&&&BOOL isLandscape = [self isLandscape];&&&&&&&&CGRect screenBounds = [UIScreen mainScreen].&&&&&&&&float screenWidth = isLandscape ? screenBounds.size.height : screenBounds.size.&&&&&&&&float screenHeight = isLandscape ? screenBounds.size.width : screenBounds.size.&&&&&&&&if (IS_iOS8_OR_LATER) {&&&&&&&&&&&&screenWidth = screenBounds.size.&&&&&&&&&&&&screenHeight = screenBounds.size.&&&&&&&&}}应该就是这样,这个方法可以适配iOS7/8
级别: 圣骑士
UID: 374176
可可豆: 2980 CB
威望: 2532 点
在线时间: 423(时)
发自: Web Page
回 2楼(out2011) 的帖子
直接用这两个函数吗?
级别: 侠客
UID: 331913
可可豆: 407 CB
威望: 344 点
在线时间: 520(时)
发自: Web Page
回 3楼(JasonHuang) 的帖子
可以直接用,你好好去查一下iOS7和iOS8横竖屏的改动就明白了
级别: 新手上路
可可豆: 18 CB
威望: 18 点
在线时间: 263(时)
发自: Web Page
级别: 新手上路
可可豆: 7 CB
威望: 7 点
在线时间: 47(时)
发自: Web Page
用了咋不行呢
关注本帖(如果有新回复会站内信通知您)
苹果公司现任CEO是谁?2字 正确答案:库克
发帖、回帖都会得到可观的积分奖励。
按"Ctrl+Enter"直接提交
关注CocoaChina
关注微信 每日推荐
扫一扫 浏览移动版【iPad反馈】为什么要改成只能竖屏看啊
以前还能横屏看的_ipad客户端意见反馈吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:4,345贴子:
【iPad反馈】为什么要改成只能竖屏看啊
以前还能横屏看的
:2.0.1,7.0.4.硬件设备:iPad 4G.网络环境:WiFi环境.
微软怎么办
一屁股给做坏了。毕竟是...
由于进指纹解锁需要输入...
贴吧热议榜
使用签名档&&
保存至快速回贴人法地,地法天,天法道,道法自然
接着上篇写的触摸事件,这次借机会整理下iOS横屏和竖屏的翻转方向支持,即InterfaceOrientation相关的内容。
最近做一个页面,最初并没有太多考虑orientation的情况,当其嵌入到一个在iPad上使用横屏(Landscape)的应用中,就会只显示在屏幕的左面,而且貌似还没显示全,这个……很丑!发自内心地觉得这么做对不起苹果的设计理念!对不起乔老爷子。。。
改!说到该就要了解苹果开发中对iOS应用的横屏(Landscape)和竖屏(Portrait)的支持情况。
0. 应用级别的配置
大家(特指有iOS开发经验的人)应该都知道Xcode Project的工程配置General页签中有那么四个图(或者4个checkbox),标识对四种interfaceOrientation的支持。分别为Portrait、PortraitUpsideDown、LandscapeLeft和LandscapeRight。
对应的,在Xcode Project工程配置的Info页,实际上就是Info.plist中,有对4种Orientation的记录项。
这两者是一样的。
1. Window级别的控制
在iOS6.0之后,UIApplicationDelegate中多了一个方法声明:
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
就是对于特定的application和特定的window,我们需要支持哪些interfaceOrientation,这是可以通过实现这个方法定制的。
返回值是一个无符号整数,实际上是可以使用定义好的枚举值:
typedef NS_OPTIONS(NSUInteger, UIInterfaceOrientationMask) {
UIInterfaceOrientationMaskPortrait = (1 && UIInterfaceOrientationPortrait),
UIInterfaceOrientationMaskLandscapeLeft = (1 && UIInterfaceOrientationLandscapeLeft),
UIInterfaceOrientationMaskLandscapeRight = (1 && UIInterfaceOrientationLandscapeRight),
UIInterfaceOrientationMaskPortraitUpsideDown = (1 && UIInterfaceOrientationPortraitUpsideDown),
UIInterfaceOrientationMaskLandscape = (UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight),
UIInterfaceOrientationMaskAll = (UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight | UIInterfaceOrientationMaskPortraitUpsideDown),
UIInterfaceOrientationMaskAllButUpsideDown = (UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight),
对于UIApplicationDelegate的这个方法声明,大多数情况下application就是当前的application,而window通常也只有一个。所以基本上通过window对横屏竖屏interfaceOrientation的控制相当于全局的。
2. Controller层面的控制
老版本的iOS有这样一个方法:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation NS_DEPRECATED_IOS(2_0, 6_0);
即定制是否可以旋转到特定的interfaceOrientation。
而在iOS6之后,推出了2个新的方法来完成这个任务:
- (BOOL)shouldAutorotate NS_AVAILABLE_IOS(6_0);
- (NSUInteger)supportedInterfaceOrientations NS_AVAILABLE_IOS(6_0);
可以看得出来,两个和在一起就是原来任务的完成过程。其中,大概的判断方式是,先执行前者,判断是否可以旋转,如果为YES,则根据是否支持特定的interfaceOrientation再做决断。
3. 使得特定ViewController坚持特定的interfaceOrientation
iOS6之后还提供了这样一个方法,可以让你的Controller倔强第坚持某个特定的interfaceOrientation:
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation NS_AVAILABLE_IOS(6_0);
这就叫坚持,呵呵!
当然,使用这个方法是有前提的,就是当前ViewController是通过全屏的Presentation方式展现出来的。
这里使用的是另外一套枚举量,可以去UIApplication.h中查看定义。
4. 当前屏幕方向interfaceOrientation的获取
有3种方式可以获取到“当前interfaceOrientation”:
controller.interfaceOrientation,获取特定controller的方向
[[UIApplication sharedApplication] statusBarOrientation] 获取状态条相关的方向
[[UIDevice currentDevice] orientation] 获取当前设备的方向
具体区别,可参见StackOverflow的问答:
5. 容器Controller的支持
上面把interfaceOrientation方向的获取和支持配置都说了,看起来没什么问题了。有没有什么特殊情况?
当你使用TabbarController和NavigationController按照如上做法使用的时候就会有些头疼。
办法不是没有,比较通俗的一种就是——继承实现。
(补充:iOS7之后可以通过delegate对此进行控制)
关于iOS interface orientation屏幕方向的内容就整理到此,欢迎各位看官发言。
相关文章:2013 年 12 月 18 日 -- 2013 年 12 月 20 日 -- 2015 年 1 月 17 日 -- 2014 年 2 月 22 日 --
此条目发表在 , ,
分类目录,贴了 , , , , , , ,
标签。将加入收藏夹。}

我要回帖

更多关于 ipad竖屏怎么变成横屏 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信