码迷,mamicode.com
首页 > 其他好文 > 详细

oc之封装「可输入值」的UIStepper

时间:2019-01-30 17:20:42      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:editable   textfield   uibutton   oid   github   isequal   edit   lan   bool   

2017.07.17 18:10* 字数 66 阅读 644评论 0喜欢 5

oc之封装「可输入值」的UIStepper

 

技术分享图片

最终效果

要求:

  • Platform: iOS7.0+
  • Language: Objective-C
  • Editor: Xcode6.0+

实现

  • 思路
    UIButton + UITextField + UIButton + NSLayoutConstraint
  • 核心代码
    1. setters

#pragma mark - setters

 

// 当前值

-(void)setValue:(double)value{

    if (value < _minValue) {

        value = _minValue;

    }

    else if (value > _maxValue){

        value = _maxValue;

    }

    

    _minusBtn.enabled = value > _minValue;

    _plusBtn.enabled = value < _maxValue;

    _valueTF.text = [NSString stringWithFormat:@"%.0f",value];

        

    _value = value;

    

    _valueChanged ? _valueChanged(_value) : nil;

}

 

// 最大值

-(void)setMaxValue:(double)maxValue{

    if (maxValue < _minValue) {

        maxValue = _minValue;

    }

    _maxValue = maxValue;

}

 

// 最小值

-(void)setMinValue:(double)minValue{

    if (minValue > _maxValue) {

        minValue = _maxValue;

    }

    _minValue = minValue;

}

 

// 是否可输入值

-(void)setIsValueEditable:(BOOL)isValueEditable{

    _isValueEditable = isValueEditable;

    

    _valueTF.enabled = _isValueEditable;

}

2. 事件处理

#pragma mark - action

// 按钮点击

-(void)actionForButtonClicked: (UIButton*)sender{

    if ([sender isEqual:_minusBtn]) {

        self.value = _value - _stepValue;

    }

    else if([sender isEqual:_plusBtn]){

        self.value = _value + _stepValue;

    }

}

 

// 输入事件

-(void)actionForTextFieldValueChanged: (UITextField*)sender{

    if ([sender isEqual:_valueTF]) {

        self.value = [sender.text doubleValue];

    }

}

  • 用法: 支持xibinitWithFrame

- (void)viewDidLoad {

    [super viewDidLoad];

 

// 值改变回调

    _stepper.valueChanged = ^(double value) {

        _label.text = [NSString stringWithFormat:@"%.f",value];

    };

}

github

https://github.com/BackWorld/HYStepper

oc之封装「可输入值」的UIStepper

标签:editable   textfield   uibutton   oid   github   isequal   edit   lan   bool   

原文地址:https://www.cnblogs.com/sundaysgarden/p/10338612.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!