iOS 应用提示弹窗

iOS中要弹出和AndroidToast差不多的提示,并不困难,也有着诸多的第三方库可以使用,但是有些时候我们还是需要自己看一下如何进行实现,比如我们最近的需求,需要在应用进入前台时弹出一个提示,提示中包含有可点击的按钮,那么大部分的第三方库就不支持了。

其实这个问题并不复杂,反而非常简单,因为只需要找到最顶层的window,把我们要进行弹窗的UIView加上去就可以了。而获取顶层window的代码如下:

- (UIWindow *)getTopWindow {
     UIWindow *keyWindow = [UIApplication sharedApplication].keyWindow;
    if (!keyWindow) {
        // 有可能keyWindow不存在
        keyWindow = [UIApplication sharedApplication].windows.firstObject;
    }
    return keyWindow;
}

调用这个方法,就可以获取到顶层window,获取到之后,就可以使用addSubview:添加自定义的View了,不要忘记在添加之后,使用bringSubviewToFront:把自定义View放在最上层。

UIWindow *topWindow = [self getTopWindow];
[topWindow addSubview:customView];
[topWindow bringSubviewToFront:customView];

如此就可以实现我们弹出含有ButtonUIView的需求了。

注意:不要在viewDidLoad中进行弹窗,有可能会无法弹出,因为这个View还没有出现,当它出现时可能会盖住弹出的View。

至于弹出之后如何进行消失,只需要一个dispatch_after就可以了,这里也就不再多说。

弹窗测试页面
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,626评论 25 709
  • 万圣节的晚上。 男鬼在书店门口遇到一个小女孩,小女孩手里捧着一本书,低头看着。 感觉到好像有什么东西在眼前,小女孩...
    一只不爱爬树的考拉阅读 496评论 1 3
  • 垂首低颜辞花镜,素画峨眉憔细柳,尘落几里无人顾,踯躅,自宽未妨凭觞壶。 南山凤凰别枝飞,玉碎,金戈铁马人未归,一曲...
    乔韫阅读 348评论 2 3
  • 迷蒙的天空 妩媚的小蛮腰 知否,知否 多少浮躁的灵魂 迷失了方向 男人忘却了家国之责任 浑浑噩噩,纸醉金迷 女人没...
    81d1aa263da清风阅读 236评论 3 5
  • 我现在正在读的是李笑来的《把时间当作朋友》中的第六章更多思考 6.d 开源节流。 作者告诉我们,在时间管理上,最有...
    圆惠阅读 288评论 0 0