iOS 防截屏方法(一)

news/2024/7/20 22:29:57 标签: ios, cocoa, macos

利用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);
    }];
	// 需要防截屏内容视图,在这个视图中绘制想要防截屏的UI
	UIView *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.niftyadmin.cn/n/5255061.html

相关文章

gpu版本的GNN的demo

1、当涉及到在GPU上运行图神经网络(GNN)时,通常使用深度学习框架,如PyTorch或TensorFlow。在这里,我将为您提供一个使用PyTorch Geometric库实现GNN的简单示例。 首先,确保您已经安装了PyTorch和PyTorch G…

【docker三】Docker镜像的创建方法

目录 一、Docker镜像: 1、 镜像的概念 2、docker的创建镜像方式: 1.1、基于已有镜像进行创建: 1.2、基于模版创建: 1.3、基于dockerfile创建: 二、Dockerfile概述 1、Dockerfile概念: 2、dockerfile…

Python 学习笔记之 networkx 使用

介绍 networkx networkx 支持创建简单无向图、有向图和多重图;内置许多标准的图论算法,节点可为任意数据;支持任意的边值维度,功能丰富,简单易用 networkx 中的 Graph Graph 的定义 Graph 是用点和线来刻画离散事物…

GO GORM 自定义数据类型-枚举

文章目录 枚举枚举的终极办法,原文3.0版本枚举的实现举例 学习来源: 枫枫知道 枚举 很多时候,由于字符串的所占据空间较大,而某些状态的值是一定的,所以我们希望用枚举来固定对应的值。这样不仅可以节省空间&#xff…

AI 与胚胎结合?系统生物学家 Patrick Müller 利用孪生网络对斑马鱼胚胎展开研究

300 万张图片1.5 万个斑马鱼胚胎的数据集,系统生物学家 Patrick Mller 成功实现基于 AI 的胚胎识别。 作者|加零 编辑|三羊 在动物发育过程中,胚胎随着时间的推移会发生复杂的形态变化,研究者们希望能够客观地量化发…

智能优化算法应用:基于阴阳对算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于阴阳对算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于阴阳对算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.阴阳对算法4.实验参数设定5.算法结果6.参考文…

wps word中图片 一保存失真变糊

在wps中依次点击 文件-文字偏好设置-常规与保存 勾选不压缩文件中的图像 并 将默认目标输出设置为220ppi 即可

编译 Flink代码

构建环境 JDK1.8以上和Maven 3.3.x可以构建Flink,但是不能正确地遮盖某些依赖项。Maven 3.2.5会正确创建库。所以这里使用为了减少问题选择 Maven3.2.5版本进行构建。要构建单元测试,请使用Java 8以上,以防止使用PowerMock运行器的单元测试失…