当前位置: 首页 > news >正文

iOS 防截屏方法(一)

利用UITextField的安全输入secureTextEntry来实现防截屏效果,上代码:

	// 将 textField 添加到父视图UITextField *textField = [[UITextField alloc] init];textField.backgroundColor = [UIColor whiteColor];textField.secureTextEntry = YES;[self.view addSubview:textField];[textField mas_makeConstraints:^(MASConstraintMaker *make) {make.edges.equalTo(self.view);}];
	// 需要防截屏内容视图,在这个视图中绘制想要防截屏的UIUIView *subView = [[UIView alloc] init];// 将想要隐藏的内容添加到UITextField的子视图上UIView *firstView = textField.subviews.firstObject;// 注意:这一步设置非常关键,如果没有这个设置会导致页面事件被UITextField拦截!!!firstView.userInteractionEnabled = YES;// 将 subView 添加到 firstView[firstView addSubview:subView];

上面提到最主要的一点 firstView.userInteractionEnabled = YES;,我们知道UITextField是属于输入框,被点击时会弹起键盘,我们当然可以通过UITextFieldDelegate代理不让键盘弹起,但是键盘不弹起的同时,子视图的事件也被拦截,导致想在防截屏的区域处理事件就做不到了。

通过断点打印查看 firstView 的信息可以发现其 userInteractionEnabled 属性处于 NO 状态 ,我们只要将其设置成YES,就可以让 firstView 可以接收处理事件,不会影响subView的点击事件和滑动事件。

http://www.lryc.cn/news/256671.html

相关文章:

  • 【SpringBoot篇】5种类型参数传递json数据传参的操作
  • Mac系统升级node.js版本和npm版本
  • 风力发电对讲 IP语音对讲终端IP安防一键呼叫对讲 医院对讲终端SV-6005网络音频终端
  • 智能优化算法应用:基于蜉蝣算法3D无线传感器网络(WSN)覆盖优化 - 附代码
  • pymysql报错: unable to rollback、Already closed
  • [Linux] Web基础知识与http协议
  • 2020年第九届数学建模国际赛小美赛B题血氧饱和度的变异性解题全过程文档及程序
  • 【Flink on k8s】- 11 - 使用 Flink kubernetes operator 运行 Flink 作业
  • 【Linux】系统初识之冯诺依曼体系结构与操作系统
  • 【PyTorch】模型训练过程优化分析
  • GO -- 设计模式
  • angular状态管理方案(ngrx)
  • EPICS modbus 模块数字量读写练习
  • 万界星空科技低代码平台:搭建MES系统的优势
  • 【ArcGIS微课1000例】0078:创建点、线、面数据的最小几何边界
  • 五花八门客户问题(BUG) - 数据库索引损坏
  • mysql select count 非常慢
  • Tomcat管理功能使用
  • kyuubi整合flink yarn session mode
  • err_connect_length_mismatch错误
  • dva的学习总结
  • Docker部署.NET6项目
  • Pandas 打开有密码的Excel
  • CCF 202104-2:邻域均值--C++
  • 基于JAVA+SpringBoot+Vue的前后端分离的医院信息智能化HIS系统
  • Kotlin Flow 操作符
  • HarmonyOS4.0从零开始的开发教程08构建列表页面
  • 分布式环境下的session 共享-基于spring-session组件和Redis实现
  • docker基本管理和相关概念
  • Linix服务器添加dns解析