ios中UIActionSheet的誤區 – iPhone手機開發技術文章 iPhone軟體開發教學課程

今天在研究UIActionSheet 直接把代碼放到viewDidLoad中來執行,費瞭半天的勁總是出現問題,也懷疑過是不是xcode的問題,後來發現平時用都是放到一個button的方法裡來操作,於是有個觀點產生UIActionSheet必須配合動作時才有效果。於是去查看開發文檔,上面有句話也驗證瞭觀點:Action sheets display a set of buttons
representing several alternative choices to complete a task initiated by the user.

官方文檔:https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/UIKitUICatalog/UIActionSheet.html

代碼:

@interface sheetviewViewController : UIViewController

@end

UIActionSheet *actionSheet = [[UIActionSheet alloc]initWithTitle:@”first ActionSheet” delegate:self cancelButtonTitle:@”取消” destructiveButtonTitle:@”刪除” otherButtonTitles:@”保持”, nil];

actionSheet.actionSheetStyle = UIActionSheetStyleBlackTranslucent;
[actionSheet showInView:self.view];

#pragma mark—實現UIActionSheetDelegate協議
– (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex{

if (buttonIndex == 0) {
[self showAlert:@”確定”];
}else if (buttonIndex == 1) {
[self showAlert:@”第一項”];
}else if(buttonIndex == 2) {
[self showAlert:@”第二項”];
}else if(buttonIndex == 3) {
[self showAlert:@”取消”];
}

NSString *buttonTitle = [actionSheet buttonTitleAtIndex:buttonIndex];
NSLog(@”buttonTitle = %@”,buttonTitle);
}

actionSheet.actionSheetStyle = UIActionSheetStyleBlackOpaque;//設置樣式

參數解釋:

cancelButtonTitle destructiveButtonTitle是系統自動的兩項。

otherButtonTitles是自己定義的項,註意,最後一個參數要是nil。

[actionSheet showInView:self.view];這行語句的意思是在當前view顯示Action sheet。當然還可以用其他方法顯示Action sheet。

可以看到 buttonIndex 是對應的項的索引。

看到那個紅色的按鈕沒?那是ActionSheet支持的一種所謂的銷毀按鈕,對某戶的某個動作起到警示作用,

比如永久性刪除一條消息或圖像時。如果你指定瞭一個銷毀按鈕他就會以紅色高亮顯示:

actionSheet.destructiveButtonIndex=1;

與導航欄類似,操作表單也支持三種風格 :

UIActionSheetStyleDefault //默認風格:灰色背景上顯示白色文字

UIActionSheetStyleBlackTranslucent //透明黑色背景,白色文字

UIActionSheetStyleBlackOpaque //純黑背景,白色文字

用法:

actionSheet.actionSheetStyle = UIActionSheetStyleBlackOpaque;//設置樣式

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *