iOS 应用提示弹窗

iOS中要弹出和AndroidToast差很少的提示,并不困难,也有着诸多的第三方库能够使用,可是有些时候咱们仍是须要本身看一下如何进行实现,好比咱们最近的需求,须要在应用进入前台时弹出一个提示,提示中包含有可点击的按钮,那么大部分的第三方库就不支持了。objective-c

其实这个问题并不复杂,反而很是简单,由于只须要找到最顶层的window,把咱们要进行弹窗的UIView加上去就能够了。而获取顶层window的代码以下:windows

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

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

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

如此就能够实现咱们弹出含有ButtonUIView的需求了。spa

注意:不要在viewDidLoad中进行弹窗,有可能会没法弹出,由于这个View尚未出现,当它出现时可能会盖住弹出的View。code

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