iOS 横屏的问题,相信很多新手朋友都是懵懵懂懂
来源:互联网 发布:淘宝店铺绑定旺旺 编辑:程序博客网 时间:2024/05/01 19:49
关于iOS 横屏的问题,相信很多 新手朋友都是懵懵懂懂的,什么需要ios6以上啊,ios8之类的,或者,都实现了,网上个个大神的代码。但是!
自己的需求跟他们写的对不上,还得一脸懵逼。! 好!今天,我就教大家一个 简单的方法。来解决 横屏的问题,大家想怎么转,想怎么变!。想那个控制器转,就哪个控制器转,想什么时候横屏!就什么时候横屏!就是这么任性
话不多说,开始!我一步步的教你怎么搞!
首先! 第一步。Appdelegate.h
在你的Appdelegate.h文件中,定义一个变量
@property(nonatomic,assign)NSInteger allowRotation; 这个变量就是控制你是否允许旋转的。开关,然后在Appdelegate.m 看清楚,是.m文件中实现这个方法!!
这个地方你也可以定义一个宏,方便调用
#define ApplicationDelegate ((AppDelegate *)[UIApplication sharedApplication].delegate)
-(UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window {
if (self.allowRotation) {
returnUIInterfaceOrientationMaskLandscape;
}
returnUIInterfaceOrientationMaskPortrait;
}
看清楚!不会写,总会粘贴吧!这个,地方,我解释下。默认是返回正常的屏幕。当你allowrotation返回YES,就会变成横屏!,这出,你需要哪个方向,就写方向。这个地方你写了两个,那么,就有这两个方向是可以旋转的,注意!!,是可以旋转,不是强制旋转。意思就是,你得通过重力感应,说白了,就是转动手机,如果允许这两个方向,就会转动。
第二步 自定义一个NavigationController ,最好作为base,然后,在这个nav中,实现如下方法
- (BOOL)shouldAutorotate{
returnApplicationDelegate.allowRotation;
}
- (UIInterfaceOrientationMask)supportedInterfaceOrientations
{
returnUIInterfaceOrientationMaskPortrait;
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
returnUIInterfaceOrientationPortrait;
}
此处,!你只需要拷贝就行!!意思就是 默认是正常的竖屏!
然后!!!!!就是使用了!
如果你想,摸个控制器,是横屏,只需要,
ApplicationDelegate.allowRotation =YES;
然后,一切都美好了,!就完成了你的需求,perfect!
或者,你的需求是,点击某个全屏按钮后,会变成 横屏!然后你就说,你也是个骗子,需求实现不了!!
砖友兄弟,别着急!继续往下看!!
你只需要把如下代码拷贝到你的点击方法里!!
- (void)forceOrientation: (UIInterfaceOrientation)orientation {
if ([[UIDevicecurrentDevice] respondsToSelector:@selector(setOrientation:)]) {
SEL selector =NSSelectorFromString(@"setOrientation:");
NSInvocation *invocation = [NSInvocationinvocationWithMethodSignature:[UIDeviceinstanceMethodSignatureForSelector:selector]];
[invocation setSelector:selector];
[invocation setTarget: [UIDevicecurrentDevice]];
int val = orientation;
[invocation setArgument:&valatIndex:2];
[invocation invoke];
}
}
调用方法如下!!,想要哪个方向,!就强制转哪个方向!!!!!!
[selfforceOrientation:UIInterfaceOrientationLandscapeRight];
- iOS 横屏的问题,相信很多新手朋友都是懵懵懂懂
- 很多朋友都是从此绝交的,故事很短,却说穿了人性!
- 很多iOS大牛都是这么做的
- 很多时候,很多程序员都是这样的......
- JDK安装问题 很多新手都容易出现的问题
- 474 Magry的朋友很多
- 很多学ThinkPHP的新手会遇到的问题
- 懵懵懂懂的MVC框架
- Universal-Image-Loader框架使用(一),相信很多朋友都听过或者使用过这个强大的图片加载框架,下面介绍
- 懵懵懂懂
- 在论坛中看到很多php新手朋友,苦于找不到好的文章或资料,对php无从下手。
- IOS-为什么很多内置类如UITableViewController的delegate属性都是assign而不是retain的?
- 为什么升级iOS 10.3这么慢,升完还多出很多空间?都是因为苹果的新文件系统
- 内部类的序列化问题(很多朋友遇到的内部类序列化出错)
- 突然发现自己遇到的很多问题都是以前遇到的,有必要整理整理了
- 但有很多的HTML5朋友
- 100 零崎的朋友很多Ⅰ
- 很多企业家都是从销售做起的
- 面试题
- 实时监控textview输入的方法
- Android Studio开发环境建立aidl文件,生成相应的java文件
- Android模拟登陆综合教务系统客户端(java)-jsoup解析数据
- Java中调用Windows API的方法
- iOS 横屏的问题,相信很多新手朋友都是懵懵懂懂
- 数据结构与算法JavaScript - 二叉树和二叉查找树
- spring boot入门 (3)--Maven 打包
- Servlet常见错误及解决方法
- hokuyo 01LX激光传感器驱动程序的安装和创建地图时出现的问题
- 代码笔记
- android插件化学习笔记(二)
- POJ 1321棋盘问题
- 记录IT学习有用的网站