1. 程式人生 > >iOS 應用提示彈窗

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就可以了,這裡也就不再多說。