2011-05-17 59 views
28

我試圖顯示UIActionSheet中的取消按鈕,但它沒有顯示,是可以接受的行爲嗎?請指教。iPad上的UIActionSheet不顯示取消按鈕

UIActionSheet *actionSheet = [[UIActionSheet alloc] 
      initWithTitle:@"Are you sure you want to clear the cache?" 
      delegate:self 
      cancelButtonTitle:@"No" 
      destructiveButtonTitle:@"Yes" 
      otherButtonTitles:nil]; 

[actionSheet showInView:self.view]; 

[actionSheet release]; 

回答

52

的iPad有關於動作片和他們的取消按鈕一些特殊的規則,這取決於你在哪裏顯示它:

您可以從工具欄提出了一個動作片,標籤欄,按鈕欄項目或視圖。在決定如何呈現操作表時,該課程將考慮起始視圖和當前平臺。對於在iPhone和iPod touch設備上運行的應用程序,操作表通常從擁有該視圖的窗口底部向上滑動。對於在iPad設備上運行的應用程序,操作表通常以適當方式錨定到起始視圖的彈出窗口中顯示。彈出窗口之外的窗口會自動關閉操作頁面,如同在任何自定義按鈕中點擊一樣。您也可以以編程方式解除它。

在iPad上呈現操作表時,有時候不應該包含取消按鈕。如果您僅展示操作表,系統將在不使用動畫的情況下在彈出窗口中顯示操作表。由於彈出窗口以外的點擊會在不選擇項目的情況下關閉操作頁面,這會導致取消頁面的默認方式。因此包括一個取消按鈕只會造成混淆。但是,如果您有一個現有的彈出窗口並正在使用動畫在其他內容的頂部顯示一個操作表,則取消按鈕仍然適用。有關更多信息,請參閱iPad人機界面指南。

這裏有更多的解釋鏈接:http://crazyviraj.blogspot.com/2010/05/showing-cancel-button-in.html

+0

我很高興讀取,這意味着我不會讓用戶感到困惑和尋找的取消按鈕? – 2011-05-17 09:49:43

+5

是的,這意味着大部分時間人們只需在iPad上的操作表之外點擊「取消」即可。查看iPad郵件應用程序,瞭解Apple處理此問題的一種方式(在肖像模式下,移動按鈕),或在照片應用程序中用於刪除按鈕。 – 2011-05-17 09:58:29

+1

在iPad上沒有顯示取消按鈕的上下文中,在iOS8上,在UIActionSheet中不需要「取消」字符串。但是,在iOS7(及更早版本?)中,需要使用「取消」字符串,以便在最後兩項之間獲得分隔符(我認爲只有當您有兩個以上項目時才適用)。啊! – 2014-11-14 22:01:10