iOS基礎2:UIStepper的使用 (計數器)

來源:互聯網
上載者:User

iOS基礎2:UIStepper的使用 (計數器)
這是iOS5後才出現的控制項,鑌哥做項目用過,所以列出來,UIStepper是一個類似UISwitch的控制項,但是左右兩邊是一個加號和一個減號。 ,該控制面板上和UISwitch類似,由兩個button組成。一個按鈕是“+”,一個按鈕是“-”,共同控制同一個value的增減。
在iOS5中新增了一個數字輸入控制項UIStepper,它可以遞進式輸入數量。UIStepper繼承自UIControl,它主要的事件是UIControlEventValueChanged,每當它的值改變了就會觸發這個事件

它主要有下面幾個屬性

    value 當前所表示的值,預設0.0minimumValue 最小可以表示的值,預設0.0maximumValue 最大可以表示的值,預設100.0stepValue 每次遞增或遞減的值,預設1.0文檔中的一些屬性和方法:配置 Stepper
    • continuous 屬性 BOOL類型,預設YES,YES時表示當使用者互動時會立刻發送ValueChange事件,NO則是只有等使用者互動結束時才發送ValueChange事件
    • autorepeat 屬性 BOOL類型,預設YES,YES時表示按住加號或減號不鬆手,數字會持續變化
    • wraps 屬性 BOOL類型,預設NO,YES時當value加的超過maximumValue,value將變成minimumValue的值,當減的比minimumValue還小,則value變成maximum的值。如果設成NO,這value不會超過最大和最小值
    • minimumValue 屬性 Double型 預設為0,最小值,當設定值大於或等於maximumValue時會報一個NSInvalidArgumentException異常
    • maximumValue 屬性 Double型 預設為100,是Stepper的最大值,當設定小於或等於minimumValue時會報一個NSInvalidArgumentException異常
    • stepValue 屬性 Double型 預設為1,Stepper的增量或者步數(例如stepValue 是10,則點一下加就加10,減也是減10),必須大於0,否則會報一個NSInvalidArgumentException異常
    • 訪問 Stepper的值
    • value 屬性 Double型 預設是0,上限是maximumValue 下限是minimumValue,當數值改變時,會發送UIControlValueEventChanged給目標
    • 定製化外觀
    • tintColor 屬性 UIColor型,預設是nil,iOS 6新增
      • - (UIImage *)backgroundImageForState:(UIControlState)state
      • 什麼狀態時用什麼背景圖片,iOS 6新增
      • UIControlState 有六個枚舉變數
        
              
        • enum {
        
              
        •    UIControlStateNormal               = 0,         正常情況
          •    UIControlStateHighlighted          = 1 << 0,    在範圍內點擊但是沒有鬆手
            •    UIControlStateDisabled             = 1 << 1,    禁止使用時
              •    UIControlStateSelected             = 1 << 2,    點擊且鬆手一般是按鈕按下且凹陷的狀態
                •    UIControlStateApplication          = 0x00FF0000,額外的狀態當應用程式使用時
                  •    UIControlStateReserved             = 0xFF000000 內部架構使用
                    • };
      • - (void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state
      • 最好圖片是可伸縮的 iOS 6新增

      • - (UIImage *)decrementImageForState:(UIControlState)state
      • iOS 6新增
      • - (void)setDecrementImage:(UIImage *)image forState:(UIControlState)state
      • iOS 6新增
      • 減號按鈕的圖片

      • - (UIImage *)incrementImageForState:(UIControlState)state
      • iOS 6新增
      • - (void)setIncrementImage:(UIImage *)image forState:(UIControlState)state
      • iOS 6新增
      • 加號按鈕的圖片

      • - (UIImage *)dividerImageForLeftSegmentState:(UIControlState)leftState rightSegmentState:(UIControlState)rightState
      • leftState是左邊的那個按鈕的狀態,rightState是右邊那個按鈕的狀態
      • 兩個按鈕不同狀態時換控制項圖片,iOS 6新增
      • - (void)setDividerImage:(UIImage *)image forLeftSegmentState:(UIControlState)leftState rightSegmentState:(UIControlState)rightState
      • iOS 6新增
        例子:testStepper.stepValue = 10;testStepper.minimumValue = 0;testStepper.maximumValue = 55;testStepper.value = 10;testStepper.tintColor = [UIColor redColor];testStepper.wraps = YES;一開始就一直點加,則值的變化為 20 30 40 50 55一開始就一直點減,則值的變化為 0 當到達上限或下限時,且wraps沒有設定成YES,則相應的加或減的按鈕會disable

        該控制項一個有趣的特徵是當使用者按住“+”“-”按鈕時,根據按住的時間長度,控制項值的數字也以不同的數字改變。按住的時間越長,數值改變的越快。可以為UIStepper設定一個數值範圍,比如0-99。

        下面是UIStepper應用範例代碼:

        01 // Create a label to show the value in the stepper
        02 label = [[UILabel alloc] initWithFrame:CGRectMake(10, 20, 100, 30)];
        03 [label setTextColor:[UIColor whiteColor]];
        04 [label setBackgroundColor:[UIColor clearColor]];
        05 [label setTextAlignment:UITextAlignmentLeft];
        06 [label setText: @"Quantity:"];
        07 [[self view] addSubview:label];
        08
        09 // Frame defines location, size values are ignored
        10 UIStepper *stepper = [[UIStepper alloc] initWithFrame:CGRectMake(120, 20, 0, 0)];
        11
        12 // Set action target and action for a particular value changed event
        13 [stepper addTarget:self action:@selector(stepperPressed:) forControlEvents:UIControlEventValueChanged];
        14
        15 // Set min and max
        16 [stepper setMinimumValue:0];
        17 [stepper setMaximumValue:99];
        18
        19 // Value wraps around from minimum to maximum
        20 [stepper setWraps:YES];
        21
        22 // If continuos (default), changes are sent for each change in stepper,
        23 // otherwise, change event occurs once user lets up on button
        24 [stepper setContinuous:NO];
        25
        26 // To change the increment value for each step
        27 // (default is 1)
        28 [stepper setStepValue:10];


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.