swift 隐藏状态栏_swift 屏幕的翻转 + 状态栏(statusBar)的隐藏
1.状态栏的隐藏
这个问题是基于 UIApplication.shared.isStatusBarHidden = true; 调用居然是无效的……
现在写下自己的代码,用来备忘吧……
1.首先需要复写一个 hidden 的这个属性 ,然后调用 setNeedsStatusBarAppearanceUpdate() 方法,
这样使用又觉得麻烦,所以 又多设置了一个变量 ,让使用更简单
override varprefersStatusBarHidden: Bool {returnself.isStatusBarHidden
}var isStatusBarHidden = false{
didSet{
self.setNeedsStatusBarAppearanceUpdate()
}
}
在使用的地方调用
self.isStatusBarHidden = true
//self.isStatusBarHidden = false;
2.屏幕的翻转:
首先写下试用与 iphone 和 ipad 的
我使用的是transfrone 旋转 视图view ,这样的前提是 这个view 是present 出来的,不能用 navigationController 了
//定义枚举
enumScreenOrientation :Int {case portrait = 1;case landscape = 2}//定义常量
let scrw =UIScreen.main.bounds.size.width;
let scrh=UIScreen.main.bounds.size.height;//定义方法
func tranformView() ->Void {if self.orientation ==.landscape {
self.orientation=.portrait
}else{
self.orientation=.landscape;
}if self.orientation ==.landscape {
self.isStatusBarHidden= trueUIView.animate(withDuration: deviceChangeOrientationTimeIntravel, animations: {
self.view.transform= CGAffineTransform.init(rotationAngle: CGFloat(Double.pi / 2))
self.view.bounds= CGRect(x:0,y:0,width:scrh,height:scrw);
self.viewWillLayoutSubviews();
self.view.layoutIfNeeded();
}) { (isFinish)in}
}else{
self.isStatusBarHidden= false;
UIView.animate(withDuration: deviceChangeOrientationTimeIntravel, animations: {
self.view.transform= CGAffineTransform.init(rotationAngle: CGFloat(0))
self.view.bounds= CGRect(x:0,y:0,width:scrw,height:scrh);
self.viewWillLayoutSubviews();
self.view.layoutIfNeeded();
}) { (isFinish)in}
}
}
简单易懂,应该是可以使用了……
网上也找了 这个方法,但是使用的时候,只有在iphone 上用,ipad 使用无效
/*
创建个 extension使用这个 扩展 要在 appdelegate 文件中 添加代码:
var blockRotation: Bool = false*/extension AppDelegate{
func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) ->UIInterfaceOrientationMask {if self.blockRotation == true{returnUIInterfaceOrientationMask.all;
}else{returnUIInterfaceOrientationMask.portrait;
}
}
}
调用的时候
let appDelegate = UIApplication.shared.delegate as! AppDelegate
//横屏
@objc func hengp()->Void{
appDelegate.blockRotation= truelet value=UIInterfaceOrientation.landscapeLeft.rawValue
UIDevice.current.setValue(value, forKey:"orientation");
}//竖屏
@objc func shup() ->Void{
appDelegate.blockRotation= falselet value=UIInterfaceOrientation.portrait.rawValue
UIDevice.current.setValue(value, forKey:"orientation")
}//切换横竖屏 执行的代理方法
overridefunc willRotate(to toInterfaceOrientation: UIInterfaceOrientation, duration: TimeInterval) {
print("方向即将改变 \(toInterfaceOrientation)");
}override func didRotate(fromfromInterfaceOrientation: UIInterfaceOrientation) {
print("方向改变完成");
/* 在这里更新 约束 和 frame */UIView.animate(withDuration: deviceChangeOrientationTimeIntravel, animations: {
self.viewWillLayoutSubviews();
self.view.layoutIfNeeded();
}) { (isFinish)in
if isFinish == true{
}
}
}
swift 隐藏状态栏_swift 屏幕的翻转 + 状态栏(statusBar)的隐藏相关推荐
- swift 隐藏状态栏_Swift - 动态改变状态栏statusBar文字颜色(preferredStatusBarStyle无效问题)...
默认情况下,顶部状态栏(statusBar)为 default样式(文字为黑色),我们可以将其改为 light样式(文字为白色),具体方法可以看我之前写的文章(点击查看) 但之前我们都是在应用发布前就 ...
- android h5状态栏消息,安卓实现系统状态栏的隐藏和显示
尤其视频类APP,需要实现切换到横屏后,隐藏系统状态栏,全屏显示,以实现看更大画面的视频.当切换回竖屏后,又显示状态栏.那么如何实现呢? 网上流传着很多种做法.比如: 1.在AndroidManife ...
- Android获取屏幕宽高,状态栏宽高,actionbar宽高,layout宽高,导航栏高度的方法汇总
看这个博客你可以知道 获取屏幕宽高,状态栏宽高,actionbar宽高,layout宽高,导航栏(虚拟按键栏)高度的方法 目录顺序为 代码测试的机型 状态栏高度 actionbar高度 屏幕高度 导航 ...
- 设置状态栏颜色、沉浸式状态栏
导入依赖: implementation 'com.gyf.immersionbar:immersionbar:3.0.0' gradle.properties加入如下配置,不然可能编译报错: and ...
- swift 听筒模式_Swift中的存储库模式
swift 听筒模式 重点 (Top highlight) 背景 (Background) All apps developed require data of some description. T ...
- css --- 使用媒体查询当屏幕宽度小于某个值时,隐藏掉某个类
Bootstrap提供了一个封装好的类: .hidden-xs: 当屏幕宽度<768px时隐藏 .hidden-sm: 当屏幕768px <= 宽度<992px时隐藏 .hidden ...
- 易宝典: Win 7 隐藏小功能——屏幕录制
声明:欢迎批评指正 来源:https://support.microsoft.com/zh-cn/help/980394 易宝典: Win 7 隐藏小功能--屏幕录制 适用于: Windows 7 E ...
- Android 状态栏工具——一行代码实现状态栏字体变黑
个人网站 参考了一些文章做了一些修改,变成了自己的工具类.其中有很多地方欠考虑,有待改进,欢迎路过的大佬给点建议. 状态栏(一) 状态栏(二) 经过前两篇的介绍我们对如何修改状态栏的效果有了大致的了解 ...
- swift 听筒模式_Swift中的“复合”模式
swift 听筒模式 定义 (Definition) 'Composite' pattern is a structural design pattern that is useful for com ...
最新文章
- 微软:外接 USB 设备或 SD 卡时将无法更新 Windows 1903
- shell模拟php多进程从redis获取数据(一个库多个key值)
- 使用python pandas dataframe学习数据分析
- C语言程序设计孙鸿飞PPT,清华大学出版社-图书详情-《C语言程序设计》
- asp.net控件开发学习(1)
- CF - 1214D
- 关于VOID *在cl与gcc的不同(无意中发现)
- 暴风影音使用技巧十则
- 玩转数据魔方之数据安全治理进阶指南
- 锆石 Hello FPGA 笔记——part1 数字电路篇
- 学习笔记整理:网络应用技术-实验-路由器交换机配置命令
- 电脑硬盘锁怎么解除linux,硬盘锁了怎么办_硬盘锁怎么解除
- (封装调用) layui table中checkbox 付款框 跨页保存选中赋值状态 跨页记忆选择
- 数据库三范式设计习题
- 安全运营(SOC)概述
- js 月份间隔计算器_Moment.js 任务剩余时间计算器
- 《深入核心的敏捷开发:ThoughtWorks五大关键实践》读书摘记
- wot的游戏引擎很牛吧_WOT排名,“如何”极客通讯以及您
- 点 . 和箭头 -> 的区别
- mac报错Could not resolve proxy: “”