在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就可以了,这里也就不再多说。

本文介绍了如何在iOS应用中实现一个类似系统的提示弹窗,特别是在应用进入前台时弹出带有可点击按钮的提示。通过获取屏幕顶层窗口并添加自定义View,可以轻松实现这一需求。需要注意避免在未出现的View上弹窗,以免被遮挡。

1744

被折叠的 条评论
为什么被折叠?



