iOS 防截屏方法(一)
2023-12-15 05:02:14
利用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
的点击事件和滑动事件。
文章来源:https://blog.csdn.net/SSY_1992/article/details/134905805
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!