你好,歡迎來到IOS教程網

 Ios教程網 >> IOS基礎知識 >> IOS基礎知識 >> iOS基礎2:UIStepper的使用 (計數器)

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

編輯:IOS基礎知識
這是iOS5後才出現的控件,镔哥做項目用過,所以列出來,UIStepper是一個類似UISwitch的控件,但是左右兩邊是一個加號和一個減號。 IOS5.0新引入的控件 UIStepper - 阿帕奇 - XGG  XGG 如圖所示,該控件外觀上和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];

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved