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)的隐藏相关推荐

  1. swift 隐藏状态栏_Swift - 动态改变状态栏statusBar文字颜色(preferredStatusBarStyle无效问题)...

    默认情况下,顶部状态栏(statusBar)为 default样式(文字为黑色),我们可以将其改为 light样式(文字为白色),具体方法可以看我之前写的文章(点击查看) 但之前我们都是在应用发布前就 ...

  2. android h5状态栏消息,安卓实现系统状态栏的隐藏和显示

    尤其视频类APP,需要实现切换到横屏后,隐藏系统状态栏,全屏显示,以实现看更大画面的视频.当切换回竖屏后,又显示状态栏.那么如何实现呢? 网上流传着很多种做法.比如: 1.在AndroidManife ...

  3. Android获取屏幕宽高,状态栏宽高,actionbar宽高,layout宽高,导航栏高度的方法汇总

    看这个博客你可以知道 获取屏幕宽高,状态栏宽高,actionbar宽高,layout宽高,导航栏(虚拟按键栏)高度的方法 目录顺序为 代码测试的机型 状态栏高度 actionbar高度 屏幕高度 导航 ...

  4. 设置状态栏颜色、沉浸式状态栏

    导入依赖: implementation 'com.gyf.immersionbar:immersionbar:3.0.0' gradle.properties加入如下配置,不然可能编译报错: and ...

  5. swift 听筒模式_Swift中的存储库模式

    swift 听筒模式 重点 (Top highlight) 背景 (Background) All apps developed require data of some description. T ...

  6. css --- 使用媒体查询当屏幕宽度小于某个值时,隐藏掉某个类

    Bootstrap提供了一个封装好的类: .hidden-xs: 当屏幕宽度<768px时隐藏 .hidden-sm: 当屏幕768px <= 宽度<992px时隐藏 .hidden ...

  7. 易宝典: Win 7 隐藏小功能——屏幕录制

    声明:欢迎批评指正 来源:https://support.microsoft.com/zh-cn/help/980394 易宝典: Win 7 隐藏小功能--屏幕录制 适用于: Windows 7 E ...

  8. Android 状态栏工具——一行代码实现状态栏字体变黑

    个人网站 参考了一些文章做了一些修改,变成了自己的工具类.其中有很多地方欠考虑,有待改进,欢迎路过的大佬给点建议. 状态栏(一) 状态栏(二) 经过前两篇的介绍我们对如何修改状态栏的效果有了大致的了解 ...

  9. swift 听筒模式_Swift中的“复合”模式

    swift 听筒模式 定义 (Definition) 'Composite' pattern is a structural design pattern that is useful for com ...

最新文章

  1. 微软:外接 USB 设备或 SD 卡时将无法更新 Windows 1903
  2. shell模拟php多进程从redis获取数据(一个库多个key值)
  3. 使用python pandas dataframe学习数据分析
  4. C语言程序设计孙鸿飞PPT,清华大学出版社-图书详情-《C语言程序设计》
  5. asp.net控件开发学习(1)
  6. CF - 1214D
  7. 关于VOID *在cl与gcc的不同(无意中发现)
  8. 暴风影音使用技巧十则
  9. 玩转数据魔方之数据安全治理进阶指南
  10. 锆石 Hello FPGA 笔记——part1 数字电路篇
  11. 学习笔记整理:网络应用技术-实验-路由器交换机配置命令
  12. 电脑硬盘锁怎么解除linux,硬盘锁了怎么办_硬盘锁怎么解除
  13. (封装调用) layui table中checkbox 付款框 跨页保存选中赋值状态 跨页记忆选择
  14. 数据库三范式设计习题
  15. 安全运营(SOC)概述
  16. js 月份间隔计算器_Moment.js 任务剩余时间计算器
  17. 《深入核心的敏捷开发:ThoughtWorks五大关键实践》读书摘记
  18. wot的游戏引擎很牛吧_WOT排名,“如何”极客通讯以及您
  19. 点 . 和箭头 -> 的区别
  20. mac报错Could not resolve proxy: “”

热门文章

  1. 如何将JSON字符串数组转对象集合
  2. 前端骨架屏自动生成方案(很实用!收藏)
  3. CycleGAN(循环生成对抗网络)论文解读
  4. 标注界址点号lisp_CAD工程图中标注序号的LISP程序
  5. 破解迅雷下载被屏蔽的电影(正版)
  6. 在Matlab中设计梳状滤波器
  7. 房产管理系统用户权限管理
  8. almon多项式_第5章 第2节 有限分布滞后模型.ppt
  9. 以管理员身份运行java_java – 在Windows中以管理员身份执行jar文件
  10. 阿里旺旺(不是掏宝旺旺)