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

前面咱們講完 iOS 控件中的兩個提示性控件, 如今讓咱們繼續往下看.css


1.UISegemtedControl的經常使用屬性

// 1.初始化時設置 UISegemtedControl 的 Item 數組
init(items: [AnyObject])

// 2.設置 UISegemtedControl 點擊以後是否瞬間彈起, (默認是 false)
var momentary: Bool

// 3.獲取 UISegemtedControl 裏有的分段按鈕個數 
var numberOfSegments: Int { get }

// 4.設置 UISegemtedControl 是否基於內容自動調整尺寸, 默認是 false, 前提是要不設置 UISegemtedControl 的尺寸
var apportionsSegmentWidthsByContent: Bool

// 5.獲取 UISegemtedControl 可點擊的 Item 數量
var selectedSegmentIndex: Int

// 6.設置 UISegemtedControl 的樣式顏色
var tintColor: UIColor!

2.UISegemtedControl的經常使用方法

// 1.插入一個 UISegemtedControl 的分段按鈕, 而且設置標題和索引, 以及是否使用動畫
    func insertSegmentWithTitle(title: String!, atIndex segment: Int, animated: Bool)

// 2.插入一個 UISegemtedControl 做爲分段按鈕, 而且設置索引, 以及是否使用動畫
    func insertSegmentWithImage(image: UIImage, atIndex segment: Int, animated: Bool)

// 3.刪除指定索引的 UISegemtedControl 分段按鈕, 以及是否使用動畫
    func removeSegmentAtIndex(segment: Int, animated: Bool)

// 4.刪除全部 UISegemtedControl 的分段按鈕
    func removeAllSegments()

// 3.修改 UISegemtedControl 指定的 Item 分段按鈕標題
    func setTitle(title: String?, forSegmentAtIndex segment: Int)

// 4.獲取指定的 UISegemtedControl 分段按鈕的標題
    func titleForSegmentAtIndex(segment: Int) -> String?

// 5.修改 UISegemtedControl 指定的 Item 分段按鈕圖片
    func setImage(image: UIImage?, forSegmentAtIndex segment: Int)

// 6.獲取指定的 UISegemtedControl 分段按鈕的圖片
    func imageForSegmentAtIndex(segment: Int) -> UIImage?

// 7.設置 UISegemtedControl 指定的 Item 寬度
    func setWidth(width: CGFloat, forSegmentAtIndex segment: Int)

// 8.獲取指定 UISegemtedControl 分段按鈕的寬度
    func widthForSegmentAtIndex(segment: Int) -> CGFloat

// 9.設置 UISegemtedControl 指定的 Item 內容偏移量
    func setContentOffset(offset: CGSize, forSegmentAtIndex segment: Int)

// 10.獲取指定 UISegemtedControl 指定的 Item 內容偏移量
    func contentOffsetForSegmentAtIndex(segment: Int) -> CGSize

// 11.設置 UISegemtedControl 指定的 Item 是否能夠點擊
    func setEnabled(enabled: Bool, forSegmentAtIndex segment: Int)

// 12.獲取指定 UISegemtedControl 指定的 Item 是否能夠點擊
    func isEnabledForSegmentAtIndex(segment: Int) -> Bool


// 13.設置 UISegemtedControl 的背景圖片, 而且在 UISegemtedControl 指定的樣式下才會顯示, 以及圖片顯示的樣式
    func setBackgroundImage(backgroundImage: UIImage?, forState state: UIControlState, barMetrics: UIBarMetrics)

// 14.獲取 UISegemtedControl 在指定的狀態, 圖片顯示下的圖片
    func backgroundImageForState(state: UIControlState, barMetrics: UIBarMetrics) -> UIImage?

// 15.設置 UISegemtedControl 的左右的分隔符圖片, 而且在 UISegemtedControl 指定的樣式下才會顯示, 以及圖片顯示的樣式
    func setDividerImage(dividerImage: UIImage?, forLeftSegmentState leftState: UIControlState, rightSegmentState rightState: UIControlState, barMetrics: UIBarMetrics)

// 16.獲取 UISegemtedControl 的左右的分隔符圖片, 而且在 UISegemtedControl 指定的樣式下才會顯示, 以及圖片顯示的樣式
    func dividerImageForLeftSegmentState(leftState: UIControlState, rightSegmentState rightState: UIControlState, barMetrics: UIBarMetrics) -> UIImage?

3.代碼演示

自定義UISegemtedControl數組

func mySegmentedControl() {

        // 1.自定義 UISegemtedControl 而且設置它的 Item 數組對象
        var segmented = UISegmentedControl(items: ["分段一", "分段二"])

        // 2.設置 UISegemtedControl 的中心點
        segmented.center = CGPointMake(self.view.frame.width / 2, self.view.frame.height / 2)

        // 3.設置 UISegemtedControl 的尺寸
        segmented.bounds = CGRectMake(0, 0, 300, 30)

        // 4.設置 UISegemtedControl 點擊以後是否瞬間彈起, (默認是 false)
        segmented.momentary = true

        // 5.獲取 UISegemtedControl 的分段按鈕個數
        var number: Int = segmented.numberOfSegments

        // 6.設置 UISegemtedControl 是否基於內容自動調整尺寸, 默認是 false, 前提是要不設置 UISegemtedControl 的尺寸
        segmented.apportionsSegmentWidthsByContent = false

        // 7.插入一個 UISegemtedControl 的分段按鈕, 而且設置標題和索引, 以及是否使用動畫
        segmented.insertSegmentWithTitle("分段三", atIndex: 2, animated: true)

        // 8.插入一個 UISegemtedControl 做爲分段按鈕, 而且設置索引, 以及是否使用動畫
        segmented.insertSegmentWithImage(UIImage(named: "image_black.jpg")!, atIndex: 3, animated: true)

        // 9.刪除指定索引的 UISegemtedControl 分段按鈕, 以及是否使用動畫
        segmented.removeSegmentAtIndex(1, animated: true)

        // 10.刪除全部 UISegemtedControl 的分段按鈕
        //segmented.removeAllSegments()

        // 11.修改 UISegemtedControl 指定的 Item 分段按鈕標題
        segmented.setTitle("分段四", forSegmentAtIndex: 0)

        // 12.獲取指定的 UISegemtedControl 分段按鈕的標題
        var title: String = segmented.titleForSegmentAtIndex(0)!
        println(title)

        // 13.修改 UISegemtedControl 指定的 Item 分段按鈕圖片
        segmented.setImage(UIImage(named: "image_black.jpg")!, forSegmentAtIndex: 2)

        // 14.獲取指定的 UISegemtedControl 分段按鈕的圖片
        var image: UIImage = segmented.imageForSegmentAtIndex(2)!
        println(image)

        // 15.設置 UISegemtedControl 指定的 Item 寬度
        segmented.setWidth(70, forSegmentAtIndex: 0)

        // 16.獲取指定 UISegemtedControl 分段按鈕的寬度
        var width: CGFloat = segmented.widthForSegmentAtIndex(0)
        println(width)

        // 17.設置 UISegemtedControl 指定的 Item 內容偏移量
        segmented.setContentOffset(CGSizeMake(5, 5), forSegmentAtIndex: 0)

        // 18.獲取指定 UISegemtedControl 指定的 Item 內容偏移量
        var size: CGSize = segmented.contentOffsetForSegmentAtIndex(0)
        println(size)

        // 19.設置 UISegemtedControl 指定的 Item 是否能夠點擊
        segmented.setEnabled(true, forSegmentAtIndex: 0)

        // 20.獲取指定 UISegemtedControl 指定的 Item 是否能夠點擊
        var bool: Bool = segmented.isEnabledForSegmentAtIndex(0)
        println(bool)

        // 21.獲取 UISegemtedControl 可點擊的 Item 數量
        var selected: Int = segmented.selectedSegmentIndex
        println(selected)

        // 22.設置 UISegemtedControl 的樣式顏色
        segmented.tintColor = UIColor.redColor()

        // 23.設置 UISegemtedControl 的背景圖片, 而且在 UISegemtedControl 指定的樣式下才會顯示, 以及圖片顯示的樣式
        segmented.setBackgroundImage(UIImage(named: "image_black.jpg"), forState: UIControlState.Normal, barMetrics: UIBarMetrics.Default)

        // 24.獲取 UISegemtedControl 在指定的狀態, 圖片顯示下的圖片
        var backgroundImage: UIImage = segmented.backgroundImageForState(UIControlState.Normal, barMetrics: UIBarMetrics.Default)!
        println(backgroundImage)

        // 25.設置 UISegemtedControl 的左右的分隔符圖片, 而且在 UISegemtedControl 指定的樣式下才會顯示, 以及圖片顯示的樣式
        segmented.setDividerImage(UIImage(named: "image_divider"), forLeftSegmentState: UIControlState.Normal, rightSegmentState: UIControlState.Normal, barMetrics: UIBarMetrics.Default)

        // 26.獲取 UISegemtedControl 的左右的分隔符圖片, 而且在 UISegemtedControl 指定的樣式下才會顯示, 以及圖片顯示的樣式
        var divider: UIImage = segmented.dividerImageForLeftSegmentState(UIControlState.Normal, rightSegmentState: UIControlState.Normal, barMetrics: UIBarMetrics.Default)!
        println(divider)

        // 27.添加 UISegemtedControl 的監聽方法
        segmented.addTarget(self, action: "didClicksegmentedControlAction:", forControlEvents: UIControlEvents.ValueChanged)


        // 添加到 self.view
        self.view.addSubview(segmented)
    }

UISegemtedControl的監聽方法ruby

func didClicksegmentedControlAction(segmented: UISegmentedControl!) {
        var index = segmented.selectedSegmentIndex
        if index == 0 {
            println("分段按鈕一")
        } else if index == 1 {
            println("分段按鈕二")
        } else if index == 2 {
            println("分段按鈕三")
        }
    }

在 viewDidLoad 中實現markdown

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

4.最終效果

1
1app

2
2ide

PS: UISegemtedControl 是繼承與 UIControl 的, 因此 UIControl 裏面的方法以及屬性都是能夠使用的.動畫


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

相關文章
相關標籤/搜索