2010-03-02 60 views
1

我看過幾個應用程序,它們顯示某種形式的警報,有時需要用戶輸入或顯示某種類型的信息。無論如何,從「戒備」的設計來看,我會假設他們正在使用別的東西來展示這些。更好的UIAlert對話框

我的第一個猜測是某種形式的視圖,但我看到它們的尺寸較小並且以主視圖爲中心。這仍然可能是一個自定義的視圖?是否有任何這樣的情況下,自定義視圖模式顯示,並要求繼續之前解僱或確認?

一如既往,在此先感謝您的任何信息。

地球...

回答

0

沒有任何例子,很難說具體是什麼使用。但是,在大多數情況下,UIActionSheet用於這種自定義對話框。

Class Reference

0

通常人們使用UIAlertView,他們只是在消息字段中放置了一堆換行符。這將根據換行符的數量爲您提供所需的高度。然後,他們通過致電addSubview:viewToAdd添加任何其他視圖。我知道這是一種痛苦和「黑客」,但它成爲人們常用的一種常用方法。 Here is a forum post on the topic which illustrates how to do it.

1

爲了創建這是模態的一個自定義提醒,可以做到以下幾點:

有兩個子視圖中創建一個UIView。其中一個sub-UIViews覆蓋了整個窗口(例如,尺寸爲320x480),並帶有一個調整後的alpha值,以使其顯示在其下的內容變暗。兄弟子視圖是您的Alert的容器,應該在最前面。

忽略調光器視圖中的事件,對警報容器視圖中的水龍頭或其他事件作出適當響應。

當所有的視圖被配置和疊合出,作爲子視圖添加頂視圖爲類似於[[UIApplication的sharedApplication] keyWindow]

[[[UIApplication sharedApplication]keyWindow] addSubview:myCustomAlertView]; 

注:原因,其中一個變暗同級的觀點並阻礙UI事件是我非常確定,如果你降低超級視圖的alpha,那麼子視圖將繼承該屬性。至少我記得過去曾經處理過這個問題。如果錯誤,我會立即糾正。

- 我創建了一個自定義的警報類,雖然此時不是模態,但會在幾秒鐘後自動關閉,或者在接收到touchUpInside事件的超時之前自動關閉。這只是一個響應點擊的UIView。我發現在我的應用程序中有幾個區域想要顯示一條簡短消息,但不喜歡必須始終點擊「確定」按鈕才能繼續前進。有了這門課程,即使在警報自動隱藏之前,我仍然可以繼續進行其他活動,或者仍然只是輕點失去它。

+0

想要分享您的代碼...? – 2010-12-04 14:28:24

2

如果你想要一個真正自定義的UIAlertView替換,我創建了一個UIView子類,如果一個UIAlertView作爲Quartz繪圖演示的樣式,可以找到源代碼here。唯一缺少的是警報視圖的自定義按鈕類型。

但是,在使用非標準警報視圖時要小心。爲您提供的那些設計是一致的,以便他們的用戶在iPhone OS上擁有統一的體驗。如果你構建的是與操作系統其他部分不同的東西,那麼當人們使用你的應用程序時,這可能會導致沮喪。

+0

+1,感謝分享代碼 – 2011-11-09 15:18:54