iOS 應用提示彈窗
阿新 • • 發佈:2019-01-09
在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
就可以了,這裡也就不再多說。