可參考http://furnacedigital.blogspot.tw/2011/12/uistepper.html
以下是實驗結果,試了一個靜態及一個動態的實作。
1. 開啓專案
2. 因為要實驗貼圖的效果,因此加入了Mac的圖庫
3. 在storyboard加上一個stepper及兩個Label
4. 在mainViewController.h註冊所需元件
#import <UIKit/UIKit.h>
@interface mainViewController : UIViewController
@property (weak, nonatomic) IBOutlet UIStepper *stepper1;
@property (weak, nonatomic) IBOutlet UILabel *showLabel;
@property (nonatomic) UIStepper *stepper2;
@property (weak, nonatomic) IBOutlet UILabel *showLabel2;
@end
5. 在mainViewController.m加上程式碼
#import "mainViewController.h"
@interface mainViewController ()
@end
@implementation mainViewController
@synthesize showLabel, stepper1;
@synthesize stepper2;
@synthesize showLabel2;
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
//資源分配與位置設定
stepper2 = [[UIStepper alloc] init];
// size value are ignore,注意大小不能設定,因此設為任何值都可以,此處為0
[stepper2 setFrame:CGRectMake(300, 500, 0, 0)];
// [stepper2 sizeToFit];
// [stepper2 setCenter:self.view.center];
//設定stepper的範圍與起始值
[stepper2 setMaximumValue:10.0];
[stepper2 setMinimumValue:0.0];
[stepper2 setValue:5.5];
//設定stepper每次增減的值
[stepper2 setStepValue:0.1];
//設定stepper可以按住不放來連續更改數值
[stepper2 setContinuous:YES];
//設定stepper是否循環(到最大值時再增加數值最從最小值開始)
[stepper2 setWraps:YES];
//將stepper加入UIControlEventValueChanged的觸發事件中並設定觸發時所處理的函式
[stepper2 addTarget:self action:@selector(stepperValueIschanged) forControlEvents:UIControlEventValueChanged];
NSString *imageName1 = [NSString stringWithFormat:@"Doggie.gif"];
NSString *imageName2 = [NSString stringWithFormat:@"Pointy.gif"];
NSString *imageName3 = [NSString stringWithFormat:@"RedDog.gif"];
UIImage *minImage = [[UIImage imageNamed:imageName1] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 1, 0, 0)];
UIImage *maxImage = [[UIImage imageNamed:imageName2] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 1, 0, 0)];
UIImage *divImage = [[UIImage imageNamed:imageName3] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 1, 0, 0)];
[stepper2 setDecrementImage:minImage forState:UIControlStateNormal];
[stepper2 setIncrementImage:maxImage forState:UIControlStateNormal];
[stepper2 setDividerImage:divImage forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateNormal];
//將stepper加至畫面中
[self.view addSubview:stepper2];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)stepperValueChange:(id)sender {
showLabel.text = [NSString stringWithFormat:@"Stepper1 Value = %3.2f", stepper1.value];
}
- (void) stepperValueIschanged
{
showLabel2.text = [NSString stringWithFormat:@"Stepper2 Value = %2.2f", stepper2.value];
}
@end
6. 實驗結果,因為大小不能設定,所以第二個Stepper的圖示有點太大。如果要使用圖示效果,還是使用兩個Button來組合,還比較好看。



