iOS中的UIStepper数值加减器用法指南

UIStepper可以连续增加或减少一个数值。控件的外观是两个水平并排的按钮构成,一个显示为“+”,一个显示为“-”。
该控件的一个有趣的特征是当用户按住“+”,“-”按钮时,根据按住的时间长度,空间值的数字也以不同的数字改变。按住的时间越长,数值改变的越快。可以为UIStepper设定一个数值范围,比如0-99. 它的显示效果如下:

1. 属性说明
value: 当前所表示的值,默认为0.0;
minimumValue: 最小可以表示的值,默认0.0;
maximumValue: 最大可以表示的值,默认100.0;
stepValue: 每次递增或递减的值,默认为1.0;

2.如何判断加("+")减("-")
(1)通过设置一个   double* previousValue;   *// *用来记录Stepper.value*的上一次值
(2)在对想操作的对象进行操作后,将Stepper.value = 0

代码如下:

#pragma mark - 设置UIStepper
- (void)createUIStepper{

UIStepper * stepperButton = [[UIStepper alloc]initWithFrame:CGRectMake(225, 500, 30, 10)];
    [stepperButton addTarget:self action:@selector(controlStepperValue:) forControlEvents:UIControlEventValueChanged];
    stepperButton.maximumValue = 100.0;
    stepperButton.minimumValue = 0.0;
    stepperButton.value = INITUISTEPPERVALUE;
    stepperButton.stepValue = 1.0;
    stepperButton.continuous = YES;
    stepperButton.wraps = NO;
    stepperButton.autorepeat = YES;
    [self.view addSubview:stepperButton];
    [stepperButton release];

}

代码如下:

- (void)controlStepperValue:(UIStepper *)stepper{

if (_segment.selectedSegmentIndex == 0) {
        if (stepper.value > previousValue) {
            CGRect redRect = _redView.frame;
            redRect.size.height += 5;
            _redView.frame = redRect;
        } else {

CGRect redRect = _redView.frame;
            redRect.size.height -= 5;
            _redView.frame = redRect;
        }
        previousValue = stepper.value;
    }else{
        if (stepper.value > previousValue) {
            CGRect redRect = _greenView.frame;
            redRect.size.height += 5;
            _greenView.frame = redRect;
        } else {

CGRect redRect = _greenView.frame;
            redRect.size.height -= 5;
            _greenView.frame = redRect;
        }
        previousValue = stepper.value;
    }

}

3.基本用法整理
初始化控件

代码如下:

UIStepper * step = [[UIStepper alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];

设置控制器值是否连续触发变化

代码如下:

@property(nonatomic,getter=isContinuous) BOOL continuous;

若设置为YES,则长按会连续触发变化,若设置为NO,只有在按击结束后,才会触发。
设置长按是否一直触发变化

代码如下:

@property(nonatomic) BOOL autorepeat;

若设置为YES,则长按值会一直改变,若设置为NO,则一次点击只会改变一次值
设置控制器的值是否循环(到达边界后,重头开始,默认为NO)

代码如下:

@property(nonatomic) BOOL wraps;

设置控制器的值

代码如下:

@property(nonatomic) double value;

设置控制器的最大值和最小值

代码如下:

@property(nonatomic) double minimumValue;//默认为0
@property(nonatomic) double maximumValue; //默认为100

设置控制器的步长

代码如下:

@property(nonatomic) double stepValue;

设置控制器风格颜色

代码如下:

@property(nonatomic,retain) UIColor *tintColor;

设置控制器背景图片

代码如下:

- (void)setBackgroundImage:(UIImage*)image forState:(UIControlState)state;

获取背景图片

代码如下:

- (UIImage*)backgroundImageForState:(UIControlState)state;

通过左右按钮的状态设置分割线的图片

代码如下:

- (void)setDividerImage:(UIImage*)image forLeftSegmentState:(UIControlState)leftState rightSegmentState:(UIControlState)rightState;

获取分割线图片

代码如下:

- (UIImage*)dividerImageForLeftSegmentState:(UIControlState)state rightSegmentState:(UIControlState)state;

设置和获取加号按钮的图片

代码如下:

- (void)setIncrementImage:(UIImage *)image forState:(UIControlState)state;
- (UIImage *)incrementImageForState:(UIControlState)state;

设置和获取减号按钮的图片

代码如下:

- (void)setDecrementImage:(UIImage *)image forState:(UIControlState)state;
- (UIImage *)decrementImageForState:(UIControlState)state;

(0)

相关推荐

  • iOS开发中实现显示gif图片的方法

    我们知道Gif是由一阵阵画面组成的,而且每一帧画面播放的时常可能会不相等,观察上面两个例子,发现他们都没有对Gif中每一帧的显示时常做处理,这样的结果就是整个Gif中每一帧画面都是以固定的速度向前播放,很显然这并不总会符合需求.   于是自己写一个解析Gif的工具类,解决每一帧画面并遵循每一帧所对应的显示时间进行播放.   程序的思路如下:   1.首先使用ImageIO库中的CGImageSource家在Gif文件.   2.通过CGImageSource获取到Gif文件中的总的帧数,以及每一

  • iOS通过代理逆向传值的方式详解

    前言 在iOS开发中,常见的几种逆向传值方式,有代理(delegate).通知(NSNotification),block等等,本文就给大家分析下,如何理解和快速上手代理模式,并以一个简单的逆向传值为案例,看看代理模式是不是很难. 一.代理模式中的几个概念 讲代理模式之前,首先需要弄清楚两个概念:被代理对象和代理对象.并且需要知道它们之间是靠协议关连起来的. 1.被代理对象 被代理对象往往就是真正有做事意图的那个对象,比如卖房子案例中的想卖房子的房主,保姆婴儿案例中想喝奶的婴儿.但是它们自己做不

  • iOS通过block在两个页面间传值的方法

    一.功能需求 在第一个页面中有一个button和一个label,label上默认显示"哈哈",点击button进入第二个页面.在第二个页面有一个UITextField和一个button2,点击button2回到第一个页面,但同时第一个页面的label上显示的文字修改为刚刚在UITextField写进去的文字. 二.先定义block 在要传值得那个页面定义含有block参数的方法,即在第二个页面的.h文件中定义: 重新定义:typedef void (^ReturnTextBlock)(

  • iOS 实现多代理的方法及实例代码

    iOS实现多代理 什么是多代理 用过环信SDK的同学应该对多代理不陌生了,请看下面代码: @method @brief 注册一个监听对象到监听列表中 @discussion 把监听对象添加到监听列表中准备接收相应的事件 @param delegate 需要注册的监听对象 @param queue 通知监听对象时的线程 @result */ - (void)addDelegate:(id<EMChatManagerDelegate>)delegate delegateQueue:(dispatc

  • iOS开发中WebView的基本使用方法简介

    1.使用UIWebView加载网页 运行XCode 4.3,新建一个Single View Application,命名为WebViewDemo. 2.加载WebView 在ViewController.h添加WebView成员变量和在ViewController.m添加实现 复制代码 代码如下: #import <UIKit/UIKit.h> @interface ViewController : UIViewController {     UIWebView *webView; } @e

  • 汇总ios开发逆向传值的方法

    iOS的逆向传值有很多种方法,下面来总结几种常用的传值方式(只贴相关代码): 第一种:代理传值 第二个控制器: @protocol WJSecondViewControllerDelegate <NSObject> - (void)changeText:(NSString*)text; @end @property(nonatomic,assign)id<WJSecondViewControllerDelegate>delegate; - (IBAction)buttonClick

  • IOS获取各种文件目录路径的方法

    iphone沙箱模型有四个文件夹,分别是什么,永久数据存储一般放在什么位置,得到模拟器的路径的简单方式是什么. documents,tmp,app,Library. (NSHomeDirectory()), 手动保存的文件在documents文件里 Nsuserdefaults保存的文件在tmp文件夹里 1.Documents 目录:您应该将所有de应用程序数据文件写入到这个目录下.这个目录用于存储用户数据或其它应该定期备份的信息. 2.AppName.app 目录:这是应用程序的程序包目录,包

  • 实例讲解如何在iOS应用开发中使用设计模式中的代理模式

    代理模式是OC中一种常见的设计模式,那么什么是代理模式呢?举个栗子,假设你是一个日发货量过万的淘宝卖家(A),但是每天的派件不可能你本人或者让你的员工去派件,因此你发布了一条信息(B),上面注明各种要求,各大快递公司看到有那么大的利益纷纷上门沟通,最后你选择了一件快递公司(C).那么在上面的例子中,我们即是委托人,发布的信息即协议(protocol),上面规定了派件人需要完成的事,而最后选择的快递公司也就是代理人(delegate),代理我们去派件. 类图: 根据以上类图,可以知道在代理模式中的

  • IOS 代理方式实现实例详解

    IOS 代理方式实现 在客户端开发中,经常用到通知.代理.block来实现各个页面之间关联.通知,以一直"盲"的方式实现传递. 代理.block 可以很明确的知道各个界面之间的关联关系.以代理为例,一般的做法如下 : DesViewController *des = [[DesViewController alloc] init];des.delegate = self;[self.navigationController pushViewController:des animated

  • iOS中的UIStepper数值加减器用法指南

    UIStepper可以连续增加或减少一个数值.控件的外观是两个水平并排的按钮构成,一个显示为"+",一个显示为"-". 该控件的一个有趣的特征是当用户按住"+","-"按钮时,根据按住的时间长度,空间值的数字也以不同的数字改变.按住的时间越长,数值改变的越快.可以为UIStepper设定一个数值范围,比如0-99. 它的显示效果如下: 1. 属性说明 value: 当前所表示的值,默认为0.0: minimumValue: 最

  • iOS中sqlite数据库的原生用法

    在iOS中,也同样支持sqlite.目前有很多第三方库,封装了sqlite操作,比如swift语言写的SQLite.swift.苹果官网也为我们封装了一个框架:CoreData. 它们都离不开Sqlite数据库的支持. 本文主要介绍下,如何在swift中使用原生的sqlite的API. 在Xcode中引入sqlite API 新建一个swift项目后,我们需要让项目引入sqlite的动态链接库: 1.项目配置界面,选择Build Phases 2.点开Link Binary With Libra

  • ios中Deep Linking实例分析用法

    在 iOS 中,deep linking 实际上包括 URL Scheme.Universal Link.notification 或者 3D Touch 等 URL 跳转方式.应用场景比如常见的通知,社交分享,支付,或者在 webView 中点击特定链接在 app 中打开并跳转到对应的原生页面. 用的最多也是最常用的是通过 Custom URL Scheme 来实现 deep linking.在 application:openURL:sourceApplication:annotation

  • iOS中NSNumberFormatter的介绍与用法

    前言 iOS中NSDateFormatter用的范围一般来说比较广泛,不过相对于处理数字而言,很少用到NSNumberFormatter,NSNumberFormatter中有很多枚举类型,会为实际开发节省时间. NSNumberFormatter可以用来处理NSString和NSNumber之间的转化,可以满足基本的数字形式的转化.下面话不多说了,来一起看看详细的介绍吧 1:使用+ localizedStringFromNumber:numberStyle:本地化方法格式化NSNumber到N

  • iOS中的UISlider滑块组件用法总结

    PC上的滑块是很丑陋的,因为我们只能通过鼠标去拖动他.不过当Jobs把它移植到IOS上时一切变得酷起来,因为我们可以通过手指去拖动它,这种感觉是很妙的. 滑块为用户提供了一种可见的做范围调整的方法,用户可以通过拖动一个滑动条改变它的值,并且可以对其配置以合适不同值域.你可以设置滑块值的范围,也可以在两端加上图片,以及进行各种调整让它更美观.滑块非常适合用于表示在很大范围(但不精确)的数值中进行选择,比如音量设置.灵敏度控制等诸如此类的用途. 一.创建 滑块是一个标准的UIControl.我们可以

  • IOS开发中NSURL的基本操作及用法详解

    NSURL其实就是我们在浏览器上看到的网站地址,这不就是一个字符串么,为什么还要在写一个NSURL呢,主要是因为网站地址的字符串都比较复杂,包括很多请求参数,这样在请求过程中需要解析出来每个部门,所以封装一个NSURL,操作很方便. 1.URL URL是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址.互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它. URL可能包含远程服务器上的资源的位置,本地磁盘上的文件的路径,甚

  • iOS中 valueForKeyPath常用用法

    1.valueForKeyPath可以获取数组中的最小值.最大值.平均值.求和.代码如下: NSArray *array = @[@10, @23, @43, @54, @7, @17, @5]; + (NSString *)caculateArray:(NSArray *)array { CGFloat sum = [[array valueForKeyPath:@"@sum.floatValue"] floatValue]; CGFloat avg = [[array valueF

  • iOS中sqlite的详细用法

    本文实例为大家分享了ios中sqlite的具体操作方法,供大家参考,具体内容如下 #import <sqlite3.h> @interface ViewController () { sqlite3 *_sqldb; } @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typicall

  • iOS中NSInvocation的基本用法教程

    前言 大家应该都有所了解,在 iOS中可以直接调用某个对象的消息方式有两种:一种是performSelector:withObject:再一种就是NSInvocation. 第一种方式比较简单,能完成简单的调用.但是对于>2个的参数或者有返回值的处理,那performSelector:withObject就显得有点有心无力了,那么在这种情况下,我们就可以使用NSInvocation来进行这些相对复杂的操作 NSInvocation的基本使用 方法签名类 // 方法签名中保存了方法的名称/参数/返

  • iOS中的音频服务和音频AVAudioPlayer音频播放器使用指南

    AudioServicesPlaySystemSound音频服务 对于简单的.无混音音频,AVAudio ToolBox框架提供了一个简单的C语言风格的音频服务.你可以使用AudioservicesPlaySystemSound函数来播放简单的声音.要遵守以下几个规则: 1.音频长度小于30秒 2.格式只能是PCM或者IMA4 3.文件必须被存储为.caf..aif.或者.wav格式 4.简单音频不能从内存播放,而只能是磁盘文件 除了对简单音频的限制外,你对于音频播放的方式也基本无法控制.一旦音

随机推荐