资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

ios开发横竖屏切换,ios横屏设置

iOS中单个页面横竖屏切换 点击退出再退回到竖屏。

在开发项目的时候,遇到了一个问题,就是其中一个页面需要强制横屏,而其他页面要强制竖屏,然后返回在回到横屏,总结了一些人的经验给需要的人。

汉寿网站制作公司哪家好,找成都创新互联!从网页设计、网站建设、微信开发、APP开发、响应式网站建设等网站项目制作,到程序开发,运营维护。成都创新互联从2013年开始到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联

首先在AppDelegate.h里面添加@property(nonatomic,assign)NSInteger allowOrientations; 然后实现下面的方法。

- (NSUInteger)application:(UIApplication*)application supportedInterfaceOrientationsForWindow(UIWindow*)window{

if(_allowOrientations ==1) {

return UIInterfaceOrientationMaskLandscapeRight;

}

else{

return (UIInterfaceOrientationMaskPortrait);

}

}

最后在需要使用横竖屏切换的控制器导入Appdelegate.h文件 实现方法:

- (void)viewDidLoad{

[superviewDidLoad]; 

AppDelegate * appDelegate = (AppDelegate *)[UIApplicationsharedApplication].delegate; 

appDelegate.allowRotation =1;

}

返回到上一个页面自动切换到竖屏:

if([[UIDevicecurrentDevice] respondsToSelector:@selector(setOrientation:)]) {   

SEL selector =NSSelectorFromString(@"setOrientation:");

NSInvocation*invocation = [NSInvocationinvocationWithMethodSignature:[UIDeviceinstanceMethodSignatureForSelector:selector]];    [invocation setSelector:selector];  

[invocation setTarget:[UIDevicecurrentDevice]];

intval =UIInterfaceOrientationPortrait;  

[invocation setArgument:val atIndex:2];

[invocation invoke];

}

iOS 横竖屏切换

--- 以上对xcode10及以前模拟器都没问题 ---

那么 xCode11 iOS 13 针对modalStyle推出了新特性,presentViewController的时候需要强制添加fullScreen的modalStyle,就会导致在横屏切换到竖屏的过程中出现一个诡异的抖动,那么问题来了,fullScreen到底做了什么,和之前的present 有和区别呢

这篇文章写的还是挺详细的

A-B 的情况下,用fullScreen的话 会调用presentedViewController的viewlayoutsubviews导致重新布局 有一个切换 闪一下

这里有两个方案

fullScreen模式下 在页面A里拦截一下这种情况下 拦截一下页面

使用overFullScreen 模式,但这个模式在横竖屏下会引发一系列连锁反应,系统不会帮你强制竖屏,当你presentingViewcontroller里实现了

相关代理之后,他能够根据当前window来实现页面的横竖屏转换,到这里 ,如果你的需求已经满足了,那么恭喜你,你已经成功了。下面内容可以忽略了~

因为用到了键盘和UIMenuController,而这两个东西并不在当前 application的keywindow上,下面可以看到,而我们要用到的键盘和Menu其实都是依附于UITextEffectsWindow上的

当我们使用overFullScreent的style,横屏进入页面的时候,系统其实并不会将 UITextEffectsWindow 这个window自动旋转为竖屏,系统判定当前仍然是横屏,name键盘和menu仍然是按照横屏的高度去计算的,这就会有问题,针对这种case,目前用了一个比较迂回(一个坑一个坑去填)的解决办法。

以上希望能够帮助到有需要的朋友,有问题进一步沟通~

【iOS】Swift4.0 横竖屏监测、动态切换

前提: APP全局强制竖屏且不支持横屏!在部分页面如果打开横竖屏开关,则支持横竖屏动态切换;如果关闭,则需要点击才能跳转横屏页面。

设备在控制页面打开横竖屏开关,即设备支持横竖屏动态切换。

下图做了个简单的gif展现,下图的操作是操作手机横竖屏的结果

下面说一下强制横屏的处理办法

强制横屏就是在设备仅支持竖屏的前提下


分享标题:ios开发横竖屏切换,ios横屏设置
URL地址:http://www.cdkjz.cn/article/dsipipj.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220