UIKit框架-高級控件Swift版本: 7.UIActionSheet方法/屬性詳解

前面咱們學習了 iOS 中得第一個提示性控件 UIAlertView, 如今咱們把第二個提示性控件也學完.php


1.UIActionSheet經常使用屬性

// 1.設置 UIActionSheet 的代理對象
var delegate: UIActionSheetDelegate?

// 2.設置 UIActionSheet 的標題
var title: String

// 3.設置 UIActionSheet 的樣式
var actionSheetStyle: UIActionSheetStyle

// 4.讀取 UIActionSheet 裏有多少個按鈕
var numberOfButtons: Int { get }

// 5.設置 UIActionSheet 取消按鈕的索引
var cancelButtonIndex: Int

// 6.設置其餘按鈕的索引
var destructiveButtonIndex: Int

// 7.讀取 UIActionSheet 其餘按鈕的索引值
var firstOtherButtonIndex: Int { get }

// 8.讀取 UIActionSheet 是否可見
var visible: Bool { get }

2.UIActionSheet的經常使用方法

// 1.該方法是用來添加 UIActionSheet 的按鈕標題
func addButtonWithTitle(title: String) -> Int

// 2.該方法是用來設置 UIActionSheet 的按鈕索引
func buttonTitleAtIndex(buttonIndex: Int) -> String

// 3.該方法是來用設置 UIActionSheet 顯示到 ToolBar
func showFromToolbar(view: UIToolbar!)

// 4.該方法是用來設置 UIActionSheet 顯示到 TabBar
func showFromTabBar(view: UITabBar!)

// 5.該方法是用來設置來自 UIBarButtonItem 的 UIActionSheet, 而且是否開啓動畫效果
func showFromBarButtonItem(item: UIBarButtonItem!, animated: Bool)

// 6.該方法是用來設置 UIActionSheet 的顯示的視圖大小, 以及指定視圖和是否開啓動畫效果
func showFromRect(rect: CGRect, inView view: UIView!, animated: Bool)

// 7.該方法是用來設置 UIActionSheet 顯示到哪個視圖
func showInView(view: UIView!)

// 8.該方法是用來設置 UIActionSheet 消失的按鈕索引, 以及是否使用動畫
func dismissWithClickedButtonIndex(buttonIndex: Int, animated: Bool)

3.UIActionSheet的代理方法css

// 1.該方法是在 UIActionSheet 上的按鈕被點擊時調用的
    optional func actionSheet(actionSheet: UIActionSheet, clickedButtonAtIndex buttonIndex: Int)

// 2.該方法是在 UIActionSheet 上的點擊了取消按鈕時調用的
    optional func actionSheetCancel(actionSheet: UIActionSheet)

// 3.該方法是在 UIActionSheet 徹底即將顯示的時候調用的
    optional func willPresentActionSheet(actionSheet: UIActionSheet)

// 4.該方法是在 UIActionSheet 徹底顯示的時候調用的
    optional func didPresentActionSheet(actionSheet: UIActionSheet)

// 5.該方法是在 UIActionSheet 徹底即將消失的時候調用的
    optional func actionSheet(actionSheet: UIActionSheet, willDismissWithButtonIndex buttonIndex: Int)

// 6.該方法是在 UIActionSheet 徹底消失的時候調用的
    optional func actionSheet(actionSheet: UIActionSheet, didDismissWithButtonIndex buttonIndex: Int)

3.代碼演示

首先遵照代理協議ruby

class ViewController: UIViewController, UIActionSheetDelegate {}

自定義UIButton而且監聽 ActionSheet 方法markdown

func myButton() {
        var button: UIButton = UIButton.buttonWithType(UIButtonType.System) as! UIButton
        button.frame = CGRectMake(100, 200, 50, 20)
        button.setTitle("彈窗", forState: UIControlState.Normal)
        button.backgroundColor = UIColor.redColor()
        button.addTarget(self, action: "myActionSheet", forControlEvents: UIControlEvents.TouchUpInside)
        self.view.addSubview(button)
    }

自定義UIActionSheetide

func myActionSheet() {
        // 1.自定義 UIActionSheet, 而且設置標題, 代理對象, 以及按鈕的標題
        var actionSheet = UIActionSheet(title: "UIActionSheet", delegate: self, cancelButtonTitle: "取消", destructiveButtonTitle: "按鈕一")

        // 2.設置 UIActionSheet 的樣式
        actionSheet.actionSheetStyle = UIActionSheetStyle.Default

        // 3.設置取消按鈕的索引
        actionSheet.cancelButtonIndex = 1

        // 4.設置destructive的索引值
        actionSheet.destructiveButtonIndex = 0

        // 5.添加其餘按鈕的標題
        actionSheet.addButtonWithTitle("按鈕二")

        // 6.設置按鈕標題的索引
        actionSheet.buttonTitleAtIndex(1)

        // 7.顯示到 self.view 上
        actionSheet.showInView(self.view)
    }

實現UIActionSheet代理方法學習

// 1.該方法是在 UIActionSheet 上的按鈕被點擊時調用的
    func actionSheet(actionSheet: UIActionSheet, clickedButtonAtIndex buttonIndex: Int) {
        println("被點擊了")
    }

    // 2.該方法是在 UIActionSheet 上的點擊了取消按鈕時調用的
    func actionSheetCancel(actionSheet: UIActionSheet) {
        println("點擊了取消按鈕")
    }

    // 3.該方法是在 UIActionSheet 徹底即將顯示的時候調用的
    func willPresentActionSheet(actionSheet: UIActionSheet) {
        println("UIActionSheet即將顯示")
    }

    // 4.該方法是在 UIActionSheet 徹底顯示的時候調用的
    func didPresentActionSheet(actionSheet: UIActionSheet) {
        println("UIActionSheet徹底顯示")
    }

    // 5.該方法是在 UIActionSheet 徹底即將消失的時候調用的
    func actionSheet(actionSheet: UIActionSheet, willDismissWithButtonIndex buttonIndex: Int) {
        println("UIActionSheet即將消失")
    }

    // 6.該方法是在 UIActionSheet 徹底消失的時候調用的
    func actionSheet(actionSheet: UIActionSheet, didDismissWithButtonIndex buttonIndex: Int) {
        println("UIActionSheet徹底消失")
    }

在viewDidLoad實現動畫

override func viewDidLoad() {
        super.viewDidLoad()
        self.myButton()
    }

4.最終效果

1
2

PS: UIActionSheet 是繼承於UIView 的,因此 UIView 裏的方法和屬性 UIActionSheet 都是能夠使用的.ui


好了, 此次咱們就講到這裏, 下次咱們繼續spa

相關文章
相關標籤/搜索