iOS学习—制作全局遮罩

这篇具有很好参考价值的文章主要介绍了iOS学习—制作全局遮罩。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 在.h文件中线声明show()方法

- (void)show;

.m文件中添加全屏遮罩,在遮罩上添加了一个选择框并添加了底部弹出的动画,可自行在其中添加tableview、pickerview等其他视图,并添加了点击选择框视图外区域隐藏文章来源地址https://www.toymoban.com/news/detail-644094.html

#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];
    }];
    
    // ------底部弹出的View
    self.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学习—制作全局遮罩的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【bug】vuxUI组件popup弹出框在IOS中遮罩层会遮住页面

    可以增加自定义方法v-transfer-dom transfer-dom’.js // Thanks to: https://github.com/calebroseland/vue-dom-portal

    2024年04月28日
    浏览(78)
  • xcode 设置 ios苹果图标,为Flutter应用程序配置iOS图标

    工具网址:https://icon.wuruihong.com/ 下载之后文件目录如下 拷贝到项目的iosRunnerAssets.xcassetsAppIcon.appiconset目录下,如下图

    2024年01月23日
    浏览(68)
  • iOS问题记录 - Xcode 15安装低版本iOS模拟器(持续更新)

    最近新需求很多,项目改动很大,开发完成后想测一遍在低版本iOS系统上的兼容性,没想到低版本的iOS模拟器设备突然无法创建了。 在去年年底我研究过这个问题,写下了这篇文章iOS问题记录 - Xcode 14安装低版本iOS模拟器(持续更新),虽然当时没有完全解决,但暂时也够用

    2024年02月13日
    浏览(54)
  • iOS问题记录 - Xcode 14安装低版本iOS模拟器(持续更新)

    最近客服跟我反馈说,有一个用户打开老项目的iOS App闪退,我回顾了下这项目上次发布改了啥,发现就改了一些文本和链接,这就很奇怪。到后台查了下这个用户的设备信息和应用版本,用的是手机型号是iPhone X,系统版本是iOS 11.2,以及最新版的应用。 很长时间都忙着Flu

    2024年02月15日
    浏览(51)
  • mac电脑 安装 ios开发工具xcode步骤 以及新建ios项目

            在Mac电脑上安装Xcode,苹果公司的官方iOS开发工具,以及新建iOS项目,以下是详细步骤:         安装Xcode 1. 打开Mac上的App Store。 2. 在搜索栏中输入“Xcode”。 3. 从搜索结果中找到Xcode,点击“获取”按钮。 4. 输入您的Apple ID和密码,然后点击“安装”按钮。

    2024年02月20日
    浏览(46)
  • iOS 17 适配 Xcode 15 问题

    在适配 iOS 17 + xcode 15时遇到的问题,记录一下。 1、 Could not build module ‘WebKit’ 解决方案: 选中不能编译的库的xcodeproj,在 Build Phrases - Compile Sources ,选中所有文件, Complier Flags 里删除 -DOS_OBJECT_USE_OBJC=0 可能是三方库的目标版本比较低,cocoapods兼容低版本自动加上了 - DOS_

    2024年02月08日
    浏览(62)
  • xcode15启动IOS远程调试

    1.用数据线连接IPhone到macOS 2.打开xcode15,然后点击Window-Devices and Simulators  3.选中左边的Devices可看到已连接的IPhone,然后点击Connect via network使其选中. 选择后,左边的IPhone设备的右边出现一个地球图标,表示成功通过网络连接到IPhone 现在可断开数据线的连接,至此可以对IPhone设备进行

    2024年02月16日
    浏览(45)
  • iOS xcode 15.1 打包报错

    真机调试的时候没问题,打包的时候报错了 #报错 解决办法 pods.xcodeproj - build phases - compile sources - compiler flags  pods.xcodeproj - Targets-support files  pods-xx-frameworks 

    2024年02月02日
    浏览(56)
  • XCODE IOS 静态链接库替换升级

    XCODE 版本15.2.  一个很久需求没更新的IOS 应用,近来有新需求要开发。 拉下代码运行,出现了个BAD_ACCESS错误。出错的位置位于一个调用的第三方的.a静态库内部。因为调用代码并没有修改,很容易想到可能XCODE相关升级,导致的问题。 由于是第三方的一个.a静态库,兼容问题

    2024年02月02日
    浏览(48)
  • IOS开发-XCode14介绍与入门

    iOS开发工具一直有个毛病,就是新版本的开发工具的总会有一些奇奇怪怪的bug。比如在我的Mac-Pro(2.3 GHz 八核Intel Core i9)中iOS stimulator就无法使用(MyMac是可用的)。但是真机就可以正常使用。也不知道是XCODE14是只对本家M系芯片的优化导致Intel用不了还是咋的,很是苦恼。

    2024年02月13日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包