iOS学习—制作全局遮罩
在.h文件中线声明show()方法
- (void)show;
.m文件中添加全屏遮罩,在遮罩上添加了一个选择框并添加了底部弹出的动画,可自行在其中添加tableview、pickerview等其他视图,并添加了点击选择框视图外区域隐藏
#import "MaskView.h"@interface MaskView()@property (nonatomic ,strong) UIView *deliverView; //底部View
@property (nonatomic ,strong) UIView *BGView; //遮罩@end@implementation MaskView- (instancetype)initWithFrame:(CGRect)frame {if ([super initWithFrame:frame]) {}return self;
}- (void)appearClick {// ------全屏遮罩self.BGView = [[UIView alloc] init];self.BGView.frame = [[UIScreen mainScreen] bounds];self.BGView.tag = 100;self.BGView.backgroundColor = [HexColor(@"#000000") colorWithAlphaComponent:0.0];self.BGView.opaque = NO;//--UIWindow的优先级最高,Window包含了所有视图,在这之上添加视图,可以保证添加在最上面UIWindow *appWindow = [[UIApplication sharedApplication] keyWindow];[appWindow addSubview:self.BGView];// ------给全屏遮罩添加的点击事件UITapGestureRecognizer *gesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(exitClick)];gesture.numberOfTapsRequired = 1;gesture.cancelsTouchesInView = NO;[self.BGView addGestureRecognizer:gesture];[UIView animateWithDuration:0.3 animations:^{self.BGView.backgroundColor = [HexColor(@"#000000") colorWithAlphaComponent:0.24];}];// ------底部弹出的Viewself.deliverView = [[UIView alloc] init];
// self.deliverView.frame = CGRectMake(0, SCREEN_WIDTH, SCREEN_WIDTH, 306);ViewRadius(self.deliverView, 16);self.deliverView.backgroundColor = myCellColor;[appWindow addSubview:self.deliverView];[self.deliverView mas_makeConstraints:^(MASConstraintMaker *make) {make.bottom.mas_equalTo(0);make.width.mas_equalTo(kWidth);make.height.mas_equalTo(306);}];// ------View出现动画self.deliverView.transform = CGAffineTransformMakeTranslation(0.01, SCREEN_HEIGHT);[UIView animateWithDuration:0.5 animations:^{self.deliverView.transform = CGAffineTransformMakeTranslation(0.01, 0.01);}];[self.deliverView addSubview:self.tableView];[self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {make.top.mas_equalTo(18);make.left.mas_equalTo(0);make.width.mas_equalTo(kWidth);make.height.mas_equalTo(48 * 5);}];}
/*** 功能: View退出*/
- (void)exitClick {NSLog(@"====");[UIView animateWithDuration:0.5 animations:^{self.deliverView.transform = CGAffineTransformMakeTranslation(0.01, SCREEN_HEIGHT);self.deliverView.alpha = 0.2;self.BGView.alpha = 0;} completion:^(BOOL finished) {[self.BGView removeFromSuperview];[self.deliverView removeFromSuperview];}];
}@end
相关文章:
iOS学习—制作全局遮罩
在.h文件中线声明show()方法 - (void)show; .m文件中添加全屏遮罩,在遮罩上添加了一个选择框并添加了底部弹出的动画,可自行在其中添加tableview、pickerview等其他视图,并添加了点击选择框视图外区域隐藏 #import "MaskView.h"…...
GRPC-连接池-GPT
gRPC Dart 管理优化 User grpc for dart 如何统一管理多个Client的创建和销毁,给我一个最优解 ChatGPT 对于在Dart中使用gRPC创建和销毁多个Client的统一管理,您可以使用一个单例模式的管理类来实现最优解。 首先,创建一个管理类,…...
YOLOv5、YOLOv8改进: GSConv+Slim Neck
论文题目:Slim-neck by GSConv: A better design paradigm of detector architectures for autonomous vehicles 论文:https://arxiv.org/abs/2206.02424 代码:https://github.com/AlanLi1997/Slim-neck-by-GSConv 在计算机视觉领域&#x…...
重发布选路问题
一、思路 ; 1.增加不优选路开销解决选路不佳问题 2.用增加开销的方式使R1 不将ASBR传的R7传给另一台ASBR解决R1、R2、R3、R4pingR7环回环路 二、操作 ------IP地址配置如图 1.ospf及rip的宣告 rip: [r1]rip 1 [r1-rip-1]version 2 [r1-rip-1]netw…...
LinearAlgebraMIT_9_LinearIndependence/SpanningASpace/Basis/Dimension
这节课我们主要学习一下(Linear Independence)线性无关,(spanning a space)生成空间,(basis)基和(dimension)维度。同时我们要注意这四个很重要的基本概念的描述对象,我们会说向量组线性无关,由一个向量组生成的空间,子…...
Redission 解锁异常:attempt to unlock lock, not locked by current thread by node id
标题:解锁异常:Redission中的"attempt to unlock lock, not locked by current thread by node id"问题分析与解决方案 在分布式系统中,锁是常用的同步机制,用于保护共享资源,避免并发冲突。Redission是一个…...
AIGC技术揭秘:探索火热背后的原因与案例
文章目录 什么是AIGC技术?为何AIGC技术如此火热?1. 提高效率与创造力的完美结合2. 拓展应用领域,创造商业价值3. 推动技术创新和发展 AIGC技术案例解析1. 艺术创作:生成独特的艺术作品2. 内容创作:实时生成各类内容3. …...
【Linux】总结1-命令工具
文章目录 基础指令shell命令以及运行原理Linux权限粘滞位工具 基础指令 ls、pwd、touch、mkdir、netstat、cp、mv、cd、tar、zip、unzip、grep、pstack、ps、rm、cat、more、less、head、tail、find、ulimit -a、clear、whoami、man touch:创建文件,也包…...
Git远程仓库
Git远程仓库 推送拉取git fetchgit pull 克隆 推送 Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。那要怎么实现这种分布呢?我们可以找一台电脑充当服务器,也就是扮演远程仓库的角色,一直都处于开机…...
Redis缓存设计
缓存能够有效地加速应用的读写速度,同时也可以降低后端负载,对日常应用的开发至关重要。但是将缓存加入应用架构后也会带来一些问题,本文将针对这些问题介绍缓存使用技巧和设计方案。 1缓存的收益和成本 下图左侧为客户端直接调用存储层的架…...
华熙生物肌活:2023年版Bio-MESO肌活油性皮肤科学护肤指南
关于报告的所有内容,公众【营销人星球】获取下载查看 核心观点 以悦己和尝鲜为消费动机的他们,已迅速崛起成为护肤行业的焦点人群。而在新生代护肤议题中,“油性皮肤护理”已经成为一个至关重要的子集。今天,中国新生代人口数量…...
mysql索引介绍
索引可以提升查询速度,会影响where查询,以及order by排序。MySQL索引类型如下: 从索引存储结构划分:B Tree索引、Hash索引、全文索引 从应用层次划分:主键索引、唯一索引、单值索引、复合索引 从索引键值类型划分&am…...
说一下什么是tcp的2MSL,为什么客户端在 TIME-WAIT 状态必须等待 2MSL 的时间?
1.TCP之2MSL 1.1 MSL MSL:Maximum Segment Lifetime报文段最大生存时间,它是任何报文段被丢弃前在网络内的最长时间 1.2为什么存在MSL TCP报文段以IP数据报在网络内传输,而IP数据报则有限制其生存时间的TTL字段,并且TTL的限制是基于跳数 1.3…...
更新spring boot jar包中的BOOT-INF/lib目录下的jar包
更新spring-boot jar包中的BOOT-INF/lib目录下的jar包 场景 需要更新lib目录下某个jar包的配置文件 失败的解决方法 用解压软件依次打开spring-boot jar包(设为a.jar)、BOOT-INF/lib目录下的jar包(设为b.jar),然后修改…...
纯前端 -- html转pdf插件总结
一、html2canvasjsPDF(文字会被截断): 将HTML元素呈现给添加到PDF中的画布对象,不能仅使用jsPDF,需要html2canvas或rasterizeHTML html2canvasjsPDF的具体使用链接 二、html2pdf(内容显示不全文字会被截断…...
数据结构和算法基础
巩固基础,砥砺前行 。 只有不断重复,才能做到超越自己。 能坚持把简单的事情做到极致,也是不容易的。 数据结构和算法 程序 数据结构算法 数据结构是算法的基础 问题1:字符串匹配问题。str1 是否完全包含 str2 1)暴…...
JS二维数组转化为对象
将二维数组转化为对象的形式 转之前的数据: 转之后: const entries new Map([[foo, bar],[baz, 42],[beginNode, 202212151048010054],[beginNode, 202212151048447710],]); console.log(entries)const obj Object.fromEntries(entries);console.lo…...
通过 EPOLL 解决客户端同时连接多服务器的问题
项目需求是 程序上 同时配置了多个服务端 设备 每隔一段时间需要 比如1分钟 连一下服务器看下是否连通 并将结果上报给平台 原来是用线程池来做的 具体大概就是 定时器到了之后 遍历设备列表 找到设备之后 通过 socket连接 发送一个指令 等待服务器返回 用来检查是…...
JavaScript数据结构【进阶】
注:最后有面试挑战,看看自己掌握了吗 文章目录 使用 splice() 添加元素使用 slice() 复制数组元素使用展开运算符复制数组使用展开运算符合并数组使用 indexOf() 检查元素是否存在使用 for 循环遍历数组中的全部元素创建复杂的多维数组将键值对添加到对象…...
jQuery编程学习3(jQuery 其他方法: jQuery 拷贝对象、 jQuery 多库共存、jQuery 插件)
目录 jQuery 其他方法 1. jQuery 拷贝对象 $.extend()方法 2. jQuery 多库共存 问题概述: 客观需求: jQuery 解决方案:(两种方式) 3. jQuery 插件 jQuery 插件常用的网站: jQuery 插件使用步骤&…...
wordpress后台更新后 前端没变化的解决方法
使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…...
XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...
iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版分享
平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...
【单片机期末】单片机系统设计
主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...
DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...
多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...
均衡后的SNRSINR
本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt 根发送天线, n r n_r nr 根接收天线的 MIMO 系…...
如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...
LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf
FTP 客服管理系统 实现kefu123登录,不允许匿名访问,kefu只能访问/data/kefu目录,不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...
GruntJS-前端自动化任务运行器从入门到实战
Grunt 完全指南:从入门到实战 一、Grunt 是什么? Grunt是一个基于 Node.js 的前端自动化任务运行器,主要用于自动化执行项目开发中重复性高的任务,例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...
