首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

有一段时间后,有没有办法解雇一个无按钮UIalertView?

在iOS开发中,可以通过以下方法解雇一个无按钮的UIAlertView:

  1. 使用UIAlertController替代UIAlertView:UIAlertView在iOS 9之后被废弃,推荐使用UIAlertController。UIAlertController是一个更加灵活和强大的替代方案。

示例代码:

代码语言:swift
复制
let alertController = UIAlertController(title: "提示", message: "这是一个无按钮的弹窗", preferredStyle: .alert)
self.present(alertController, animated: true, completion: nil)

// 一段时间后解雇弹窗
DispatchQueue.main.asyncAfter(deadline: .now() + 3) {
    alertController.dismiss(animated: true, completion: nil)
}

上述代码中,首先创建一个UIAlertController实例,设置标题和消息内容,并使用present(_:animated:completion:)方法将其显示出来。然后,使用DispatchQueue.main.asyncAfter(deadline: .now() + 3)方法延迟一段时间后,调用dismiss(animated:completion:)方法解雇弹窗。

  1. 使用自定义视图替代UIAlertView:如果需要更加自定义的弹窗样式,可以使用自定义视图来替代UIAlertView。

示例代码:

代码语言:swift
复制
let customView = UIView(frame: CGRect(x: 0, y: 0, width: 200, height: 200))
customView.backgroundColor = UIColor.red

self.view.addSubview(customView)

// 一段时间后移除自定义视图
DispatchQueue.main.asyncAfter(deadline: .now() + 3) {
    customView.removeFromSuperview()
}

上述代码中,首先创建一个自定义的UIView实例,并设置其样式和大小。然后,使用addSubview(_:)方法将其添加到当前视图中显示出来。最后,使用DispatchQueue.main.asyncAfter(deadline: .now() + 3)方法延迟一段时间后,调用removeFromSuperview()方法移除自定义视图。

这两种方法都可以实现解雇一个无按钮的弹窗,具体选择哪种方法取决于需求的复杂度和自定义程度。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【IOS 开发】基本 UI 控件详解 (UISegmentedControl | UIImageView | UIProgressView | UISlider | UIAlertView )

, 按钮等信息, 按钮监听需要创建 UIAlertView 的 UIAlertViewDelegate 委托对象; -- 显示 UIAlertView : 调用显示 UIAlertView 的显示方法;...; -- "- (BOOL) alertViewShouldEnableFirstOtherButton : (UIAlertView *) alertView" 方法 : 对话框中除 cancel 按钮之后的第一个按钮被启用回调该方法...: (NSInteger) buttonIndex" 方法 : 单击某个按钮已经隐藏警告框激发该方法; -- "- (void) alertViewCancel : (UIAlertView * )...取消按钮 其它按钮 */ UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"对话框标题" message:@"对话框内容...UIActionSheet 简介 (1) UIActionSheet 作用 UIActionSheet 作用 : 该控件是显示在界面底部的按钮列表, 该控件 一个标题 和 多个按钮; (2) UIActionSheet

2.9K40

iOS学习——UIAlertController详解

1.2.1 UIAlertController上添加按钮    UIAlertController上的每一个按钮都是一个UIAlertAction,与UIAlertController的类型是UIAlertView...;第二个参数UIAlertActionStyle是选择按钮的风格类型,三种选择:常规、取消和销毁风格类型;第三个参数是一个Block,定义了按钮的点击响应事件。...textField就会调用 这个block"); }]; 但是,值得注意的两点: 文本框的添加只能是在UIAlertController的风格类型为UIAlertView时才有 文本框的添加多个...我们可以看到,在配置文本框这里还有一个参数是textFields,这各参数是一个只读数组类型,用于获取UIAlertController提示器上所有的文本框对象,这个经常在我们点击按钮时用这个来获取到每一个文本框...2.2 利用KVC方法进行UIAlertController属性的自定义   有时候使用第三方控件会带来很多不必要的代码量和bug,所以能用系统自带的UIAlertController解决是最好的办法

3.1K170
  • iOS开发·runtime原理与实践: 关联对象篇(Associated Object)(应用场景:为分类添加“属性”,为UI控件关联事件Block体,为了不重复获得某种数据)

    当用户按下按钮关闭该视图时,需要用委托协议(delegate protocol)来处理此动作,但是,要想设置好这个委托机制,就得把创建警告视图和处理按钮动作的代码分开。...要是能在创建UIAlertView的时候直接把处理每个按钮的逻辑都写好,那就简单多了。这可以通过关联对象来做。...方案2:关联Block体 除了上一个方案中的传统方法,我们可以利用关联对象为UIAlertView关联一个Block:首先在创建UIAlertView的时候设置关联一个回调(objc_setAssociatedObject...3.2 UIButton 除了上述的UIAlertView,这节以UIButton为例,使用关联对象完成一个功能函数:为UIButton增加一个分类,定义一个方法,使用block去实现button的点击回调...有没有办法让方法只执行一次,每次调用方法的时候直接获得那一次的执行结果?有的,方案就是让某个对象的方法获得的数据结果作为“属性”与这个对象进行关联。

    2.8K20

    【IOS开发基础系列】UIAlertController专题

    下面的代码片段展示了如何初始化和显示一个带有“取消”和“好的”按钮的对话框视图。...或许您可以看到带有otherButtonTitles的init方法,但是很遗憾,这个方法是没有办法通过编译的。...为了实现原来我们在创建UIAlertView时创建的按钮效果,我们只需创建这两个动作按钮并将它们添加到控制器上即可。     ...这个时候上拉菜单是以一个固定在源按钮上的弹出框的形式显示的。         要注意UIAlertController在使用弹出框的时候自动移除了取消按钮。...用户通过点击弹出框的外围部分来实现取消操作,因此取消按钮便不再必需。 释放对话框控制器         通常情况下,当用户选中一个动作对话框控制器将会自行释放。

    53530

    iOS自动检查更新

    app store并没有看到更新字样的原因,解决办法就是等审核通过后再把后台服务器上提供的版本号更新,也很方便,另一个缺点可能就是需要一个服务器了吧。...查到自己的AppID就可以进行版本信息的请求了,url是固定的,改变的只有最后的AppID,同时我们也把当下的版本获取到,这里简单地写一个,真是应用的话,应该长久保存在本地。...提示用户更新: 获取到app store上最新的版本号,就可以和本地存储的版本号进行对比了,如果有新的版本,就弹出提示框提示用户新版本。 // 弹出提示框 if (!..., self.latestVersion]; UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"更新提示" message:...这里我还没想好,希望大神可以指教一下~ 如果用户点击更新的话,就通过刚才获取的url跳转到app store去更新: // 提示框的响应 - (void)alertView:(UIAlertView

    56220

    iOS开发之多图片无缝滚动组件封装与使用

    经常有园友会问"博主,有没有图片无限滚动的Demo呀?", 正儿八经的图片滚动的Demo我这儿还真没有,今天呢就封装一个可以在项目中直接使用的图片轮播。...首次显示1的位置,然后滑动,等滑动到最后一个3时,动画切换到第一个3的位置,然后在滚动。原理图如下,就可以按着下面的原理图来布局和实例化控件了。 ?   ...如果目前是最后一张图片则无动画的切换到ScrollView的第一张图片,因为第一张图片和最后一张图片是一样的,所以用户看不到这个动画的切换,切换,图片开始从第一个开始滚动,所以就可以无限循环的滚动了...22 [self resumeTimer]; 23 return; 24 } 25 26 27 }     9.暂停定时器     手动滑动要暂停定时器一段时间...,因为不暂停的话,你手动切换完,有时会立刻切换到下一张图片,下面是暂停定时器的方法,然后在过一段时间自动激活定时器。

    1.8K90

    函数响应式编程及ReactiveObjC学习笔记 (二)

    , 在controller中添加一个button, 然后给button添加一个点击事件 如果是常规写法的话, 在创建完button创建一个点击响应方法, 然后通过addTarget把响应方法跟button...就可以看到如果点击按钮背景就会变成红色, 如果有点击事件也可以放在这里 但如果点击要处理的逻辑比较多, 代码超过三行建议大家单独写一个方法供调用, 以免破坏代码的结构 RAC这样的使用方式, 让我的代码逻辑更加清晰紧凑了...我用UIAlertView给大家举个例子, 虽然苹果已经不推荐用这个 不过我们拿来当例子用用看 先写一个常规的AlertView #import "ViewController.h" #import <...UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"RAC" message:@"RAC Delegate Test" delegate...alert本身, 第二个是index, 然后可以按我们的需要做处理了 另外要注意的是用RAC写代理是局限的,它只能实现返回值为void的代理方法 先到这里, 现在我们知道我们能用RAC做什么了 下次我们继续看

    48711

    iOS逆向(8)-Monkey、Logos

    1.创建一个简单的工程 创建工程SimpleAppDemo,里面只有一个按钮,点击按钮弹出一个Alert。...点击下载:SimpleAppDemo 按钮对应的方法为: - (IBAction)tapAction:(id)sender { UIAlertView *alert = [[UIAlertView...配好证书(随意一个能在手机上运行的证书即可),Run。运行成功~ 4.玩转Logos 在上一步建好的Monkey工程中,可以发现在目录一个Logos目录: ?...5.给优酷加UI 首先在这里下载笔者自己砸壳优酷ipa包(arm64架构的):优酷(砸壳).ipa 提取码: xtua Step 1、新建工程YouKu 同样的新建一个Monkey工程,取名YouKu...简单说就是一个可以导出一个MachO文件的所有头文件信息(包括Extension) 在文首提到Monkey除了重签名,还集成了class dump的功能,所以我们需要做的就仅仅是开启这个功能: ?

    1.8K20

    【IOS 开发】基本 UI 控件详解 (UIDatePicker | UIPickerView | UIStepper | UIWebView | UIToolBar )

    tick) userInfo:nil repeats:YES]; } -(void) tick{ //秒数 减去 60 second = second - 60; //将自减的秒数设置给...设置 UIPickerView 某列对应选项个数 : 该方法是 UIPickerViewDataSource 委托方法; //UIPickerViewDataSource 委托方法, 获取指定列 多少个选项数据...numberOfComponentsInPickerView:(UIPickerView *)pickerView{ return 1; } //UIPickerViewDataSource 委托方法, 获取指定列 多少个选项数据...= imageTag) { //创建一个 UIImageView, 并为其设置一张图片 view = [[UIImageView alloc] initWithImage..., 此时按住 + 或 - 不放, value 值会持续增加 或 减小; -- Continuous : 默认 YES, 此时 交互时会立即发送 value change 事件, NO 时 会等交互结束才发送

    4.6K40

    【团队分享】手机QQ:升级iOS8.3,发图就崩,为哪般?

    但正所谓“福无双至,祸不单行”,我们继续深入一些隐蔽场景测试,又发现两个必现崩溃的场景: 编辑图片选择取消 关闭Wi-Fi发送短视频 分析对比,发现这两个场景一个共同的业务逻辑,即是弹出UIAlertView...所以,我们开始怀疑是否在iOS8.3系统中,是不是所有调用UIAlertView的地方都会发生崩溃? 但在选择了几个调用UIAlertView的界面进行验证,发现并没有崩溃发生。...这种情况让我们很是困惑,在一番探索,我们把焦点转移到项目中二次封装的SimpleAlertView上,尝试把出现崩溃场景的UIAlertView换成SimpleAlertView,联调测试验证发现崩溃问题没有再出现...于是,我们得到一个解决此类崩溃问题的方法: 将工程中所有调用UIAlertView执行UI提示的逻辑全部替换为调用SimpleAlertView执行,当然,还需根据不同的场景修改适配UI样式和交互表现。...但古人曰,三思而后行。

    1.2K40

    iOS中的「回调(callback)」

    (click:) forControlEvents:UIControlEventTouchUpInside]; 以上代码,用人话来讲,大意就是:当按钮被点击(某事件(event)被触发了),执行本类.../目标-动作对 // 第一个参数:发生哪种类型的点击事件会触发回调(这里表示2秒触发回调) // 第二个参数:发送消息给一个Logger实例(Logger是自定义的类) // 第三个参数:事件发生,...记得最后加分号哦,因为我就是一个常量,就像数字「5;」一样"); }; 带实参、会返回值的Block: // 实参,返回值的Block ^(double dividend,...double divisor) { NSLog(@"我是一个参数、返回值的Block"); double quotient = dividend / divisor;...return quotient; }; 声明Block变量: // 声明一个Block变量(返回值;参数), void (^YourBlockName)(id

    3.5K30

    实践-小效果 III

    饼状图.gif 大家都知道这是通过 CAShapeLayer 和 CABasicAnimation 结合起来实现的,可是其中还是需要注意的地方,实现的步骤大致如下: 绘制一个 CAShapeLayer...# 注意这个方法的调用要在Button的尺寸位置设置过之后才行(Frame,layout 设置调用才有效果),否则不会生效。...} UIButton 可以说是专门为 UILabel和UIImameView添加点击效果的控件,认清楚这个事实,我们运用UIButton的时候就更准确了,我们在实际的开发中这样的会遇到这样的情况,一个小图标...4.使用UIAlertView做简单文本框输入 使用UIAlertView做登录输入, 默认的是 登录名、密码,我们可以修改 TF的placeholer字体来达到我们想要的效果。...思路不错可以借鉴,大致如下: 点击按钮时切换按钮的图标同时设置 全局 isGrid 数值,并刷新 CollectionView。

    1.1K20

    【iOS】关联对象详解

    然而两者之间个重要差别:如果两个键指针不同,但是值相同,在这两个键上调用“isEqual:”方法的返回值是YES,那么字典也认为二者相等。(详情可参考笔者的《浅析对象等同性判断》)。...name属性 @property(nonatomic,copy) NSString *name; @end 设置关联对象可以成功访问getter和setter,代码以及输出结果如下图: ?...当用户按下按钮关闭该视图时,需要用委托协议(delegate protocol)来处理此动作,但是,要想设置好这个委托机制,就得把创建警告视图和处理按钮动作的代码分开。...比方说,我们在使用UIAlertView时,一般都会这么写: - (void)askUserAQuestion { UIAlertView *alert = [[UIAlertView...要是能在创建警告视图的时候直接把处理每个按钮的逻辑都写好,那就简单多了。这可以通过关联对象来做。创建完警告视图之后,设定一个与之关联的“块”(block),等到执行delegate方法时再将其读出来。

    7.7K40

    因“薪水太高”被欠薪3个月、后又遭解雇?程序员愤怒反击!

    如果您正在学习Spring Boot,推荐一个连载多年还在继续更新的免费教程:http://blog.didispace.com/spring-boot-learning-2x/ 一年开始出现问题 小明工作很努力...三个月后,他们解雇了小明,因为付不起薪水。 创始人不了解小明的重要性:他手头握着所有的密钥和密码,包括所有的源代码。 小明非常生气的原因两个: 在解雇小明时,没有提前两个月通知。...被解雇,他做的第一件事就是去网吧,通过Firebase的管理面板删除了用户数据库和其他一些重要的数据库信息,并将这些信息保存到了自己的Firebase账户中。 公司没有任何备份。...但他说,如果他们能补上三个月的未付工资,外加两个月的补偿(因为他们没有提前两个月通知小明),他就可以想办法解决问题。 于是,他们在当天支付了整整五个月的工资,而小明则在一个小时内解决了他们的问题。...技术交流群 最近有很多人问,有没有读者交流群,想知道怎么加入。加入方式很简单,兴趣的同学,只需要点击下方卡片,回复“加群“,即可免费加入我们的高质量技术交流群!

    35620

    iOS微信之登录授权(ShareSDK)

    创建一个APP.png 得到App Key,App Secret(后面的代码整合中会用到) ?...SDK配置.png SDK下载完成,得到如下的文件目录结构 ? SDK文件目录.png 四.代码整合 1.导入SDK ? 导入SDK.png 2.设置支持HTTP请求 ?...,登录功能 APP本身一套自己的用户系统,微信登录只是一种登录方式,那么就需要实现原有用户与微信用户的绑定 ?...,成功则反馈客户端引导用户进入系统 10、否则提示错误,调用removeAccount()方法,删除可能的授权缓存数据 参考示例:比如简书,网易云音乐的帐号绑定实现过程,都是值得借鉴的 第二种:APP注册功能...removeAccount()方法,删除可能的授权缓存数据 建议 对于iOS应用,考虑到iOS应用商店审核指南中的相关规定,建议开发者接入微信登录时,先检测用户手机是否已安装微信客户端,对未安装的用户隐藏微信登录按钮

    1.8K20

    继就职“门槛”,算法晋升职场“小警察”

    Facebook 母公司 Meta 最近大肆裁员,但在裁员邮件中却并未给出具体原因,只表示这些人是由算法评估“随机”所选中的。...据一名被解雇的合同工爆料,只要他们的电脑超过8分钟的不活跃时间就将被自动判定为在“休息”,如果休息时间超额,就会被系统自动警告并列入绩效改进计划。...02 算法“小警察”已存在一段时间 最近几年,一些科技公司们都开始把算法作为重要的工具来考核员工,并逐渐发展到决定员工的去留。...并且目前很多公司正在使用的工具都是在员工并不知情的状况下运行的,不禁让不少人感觉到自己处于 360 度死角的“监视”工作范围中。...就目前来看,疫情以来越来越多的公司开始使用算法来管理和评估员工的工作状态已经是一个非常明显的趋势。 然而,当越来越多的公司依赖或者完全依照算法数据的建议做出裁员决定时,一个潘多拉魔盒也在悄然间开启。

    27310

    iOS开发之诱导用户为自己的App评论功能

    allluckly.cn.jpg "由于我自己的App下载量少,评论也少,出于App的aso优化,想尽办法,而评论是aso里边比较重视的一块,前面的版本都没有诱导用户评论的这一功能,导致有些被动。"...由此自己简单的封装了该功能,下面我们先看看效果图: 1.png 弹出试图并没有做什么处理,就是系统的8.0以前用的UIAlertView8.0以上用的UIAlertController 具体的一些算法...,都可以看代码,闲话不多说,直接贴码, 新建一个NSObject的类命名为LBToAppStore 具体代码如下 .h文件 #import #...残忍拒绝的30天,才会弹出 else if (!...alloc] initWithTitle:@"致开发者的一封信" message:@"了您的支持才能更好的为您服务,提供更加优质的,更加适合您的App,当然您也可以直接反馈问题给到我们" delegate

    99640

    爱奇艺视频窗口显示不出来解决办法

    应当是爱奇艺视频自3.2以来的BUG,因为其它软件正常,而且中间回退到3.1也正常,现在3.3出来了,3.1已经无法使用,为此采用了本文的办法强制将它显示出来。...解决办法 10年前,做过一段时间Delphi/VB/VC开发,开发过网管软件,玩弄过控制窗口程序,比如偷换QQ密码输入框、隐藏Windows开始菜单和在第三方程序窗口上添加菜单、按钮等。...一试,还真行,也行不止我一个人遇到此问题,因此特将过程记录下来,以便可以提供帮助,具体解决办法如下: 2.1. ...原因分析 看到2.6中的截图,突然豁然开朗,原来爱奇艺视频窗口显示在另一个屏幕上去了。原因是电脑除个集成的显卡外,还有个独立显卡,是双显卡。...为验证上猜测,进入屏幕分辨率窗口,一看果然如此: 迅速将“多显示器”改成“扩展这些显示”,然后推出爱奇艺视频和AutoSizer,然后再启动爱奇艺视频,一切正常了 : 问题在一段时间的煎熬

    3.9K20

    程序员被裁的各种花式报复手段...

    于是乎,二货跟管理层之间爆发了激烈冲突,最终他被解雇、上头还勒令他用一个月时间把项目做完。 一般人在这种状况下肯定要在项目里埋雷,但二货同学的报复方法却是另辟蹊径。你觉得 C 语言不好理解?...网友 yetanotheraoc 表示,“如果有人在我们被解雇不久破坏了系统,那已经交出所有权限的我们至少不会成为被怀疑的对象、自然也不会成为无辜的替罪羊。”...但若“被迫”必须得多待一段时间,心安理得地“摸鱼”未尝不是一个解决方案。 网友 Ken G 回忆道,在 1999 年 10 月下旬他接到部门发出的通告,第二年 1 月他就要离职了。...但因为那位全职员工一直在忙着薪加班和夜间维护,公司决定把他升任成技术顾问,薪水一下涨了 3 倍。...推荐阅读 阿里P11“逃离”上海遭热议,澄清直接“骂娘” 一种避免递归查询所有子部门的树数据表设计与实现 几种主流的分布式定时任务,你知道哪些?

    51830
    领券