iOS基础2:UIStepper的使用 (计数器)

这是iOS5后才出现的控件,镔哥做项目用过,所以列出来,UIStepper是一个类似UISwitch的控件,但是左右两边是一个加号和一个减号。

 如图所示,该控件外观上和UISwitch类似,由两个button组成。一个按钮是“+”,一个按钮是“-”,共同控制同一个value的增减。

在iOS5中新增了一个数字输入控件UIStepper,它可以递进式输入数量。UIStepper继承自UIControl,它主要的事件是UIControlEventValueChanged,每当它的值改变了就会触发这个事件

它主要有下面几个属性

  • value 当前所表示的值,默认0.0
  • minimumValue 最小可以表示的值,默认0.0
  • maximumValue 最大可以表示的值,默认100.0
  • stepValue 每次递增或递减的值,默认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新增

例子:

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];

时间: 2024-10-14 11:37:18

iOS基础2:UIStepper的使用 (计数器)的相关文章

iOS 基础 第五天(0809)

0809 - 内存管理,只对oc对象生效. alloc.retain.release.retainCount 局部变量是放在栈里面的,oc对象是放在堆里面的.栈里面的内容系统自动回收,而堆里面的内容还在,所以不适用ARC的时候要手动回收这些对象内容 如下图所示: 对象的基本结构 每一个对象内部都有一个引用计数器,占用4个字节,是一个整数,当这个引用计数器的值为0的时候,这个对象就会被系统回收销毁.当一个对象刚刚诞生的时候,这个计数器的值为1 如下图所示: 引用计数器的作用 如下图所示: 引用计数

ios基础-XCode使用技巧

(一)代码规范pragma mark 1.定义 #pragma 开头的代码是一条编译器指令,是一个特定于程序或编译器的指令.不一定适用于其它编译器或其它环境.如果编译器不能识别该指令,则会将其忽略. 2.作用 在编辑器窗格顶部,方法和函数弹出菜单中将代码分隔开,规范化代码,方便阅读查找. 3.使用 在需要加注释的地方加上#pragma mark - #pragma mark - 视图将要显示的时候 - (void)viewWillAppear:(BOOL)animated { //初始化选号的数

iOS 基础函数解析 - Foundation Functions Reference

Foundation Functions Reference Framework Foundation/Foundation.h Declared in NSBundle.h NSByteOrder.h NSDecimal.h NSException.h NSObjCRuntime.h NSObject.h NSPathUtilities.h NSRange.h NSZone.h Overview This chapter describes the functions and function

iOS基础问答面试

<简书社区 — Timhbw>iOS基础问答面试题连载(一)-附答案:http://www.jianshu.com/p/1ebf7333808d <简书社区 — Timhbw>iOS基础问答面试题连载(二)-附答案:http://www.jianshu.com/p/ce50261f8907 <简书社区 — Timhbw>iOS基础问答面试题连载(三)-附答案:http://www.jianshu.com/p/5fd65c20912e 以下是一些自己收集的比较基础的问题(

iOS基础 KVC和KVO

疯狂IOS讲义这本书之前一直一直觉得没什么用,看了做不出像样的程序出来,但是经过几天的学习发现,没有一定的ios基础,做的程序永远都是在模仿他人的程序,把他人的代码复制 粘贴...为什么能够实现?原理 是什么?不懂...所以 必须懂原理,为什么? 接下来就今天所学习的内容做一个小结: 首先介绍一下KVO和KVC,一个是键值编码一个是键值监听,我第一次听这个也是很困惑,这是个神马意思?键值是啥?监听 还懂一点 ... 我们都知道之前我们都是通过setter和getter来设置和修改对象的属性,KV

iOS 基础之—— Properties

一篇关于iOS 编程中 @property 方法中属性的介绍,写的十分简洁明了,原文链接请戳. ===读后分割线==== 在iOS 5之后,有了ARC 的出现,不需要手动进行内存管理,@property 中的属性也有了一些变化. 现在常使用的如下: 属性 功能介绍 getter= 给getter方法一个自定义名称 setter= 给setter方法一个自定义名称 readonly 不生成setter方法 nonatomic 禁止多线程,相较默认的线程保护(atomic)可提高性能 内存管理属性

iOS基础 01 构建HelloWorld,剖析并真机测试

iOS基础 01 构建HelloWorld,剖析并真机测试 前言: 从控制台输出HelloWorld是我们学习各种语言的第一步,也是我们人生中非常重要的一步. 多年之后,我希望我们仍能怀有学习上进的心情,继续以HelloWorld去认识这世界上更多的东西. 本篇以HelloWorld作为切入点,向大家系统介绍什么事iOS应用以及如何使用Xcode创建iOS应用. 目录: 1. 创建HelloWorld工程 1.1. 设计界面 1.2. 真机测试 2. Xcode中的iOS工程模板 2.1. Ap

iOS 基础 第二天(0805)

0805 面向对象三大特性 封装.继承和多态 oc的方法都是在运行过程中才会检测的.编译时方法没实现只会出现警告,运行时出错.如果方法实现了但没有声明,运行时对象仍然可以调用方法不会出错.这是OC中弱语法的表现 说白了oc中的弱语法就是因为运行时检测合理性和可用性.编译时不会出错顶多是警告,运行时才警告.这个现象不仅仅体验在方法的声明和实现上,比较好的一个例子是MPMoviePlayerController的截屏通知事件,它需要传入float类型的数组,如果你在编译写了整型不会报错也不会警告,但

iOS基础控件UINavigationController中的传值

iOS基础控件UINavigationController中的传值,代理传值,正向传值,反向传值 #import <UIKit/UIKit.h> //声明一个协议 @protocol SendValue<NSObject> //定义一个方法 - (void)sendBtnTitle:(NSString *)title; @end @interface FirstViewController : UIViewController // 定义代理 @property (nonatomi