在
iOS
中要弹出和
Android
中
Toast
差不多的提示,并不困难,也有着诸多的第三方库可以使用,但是有些时候我们还是需要自己看一下如何进行实现,比如我们最近的需求,需要在应用进入前台时弹出一个提示,提示中包含有可点击的按钮,那么大部分的第三方库就不支持了。
其实这个问题并不复杂,反而非常简单,因为只需要找到最顶层的
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];
如此就可以实现我们弹出含有
Button
的
UIView
的需求了。
注意:不要在
viewDidLoad
中进行弹窗,有可能会无法弹出,因为这个View还没有出现,当它出现时可能会盖住弹出的View。
至于弹出之后如何进行消失,只需要一个
dispatch_after
就可以了,这里也就不再多说。