zoukankan      html  css  js  c++  java
  • oc之封装「可输入值」的UIStepper

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

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

    1334681-e2aedca4e2a684b7.gif

    最终效果

    要求:

    • 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

  • 相关阅读:
    记一次css载入指定url失败
    更改MySQL密码后Navicat连接失败错误代码1045
    Maven项目中不显示Maven Dependenciesy依赖
    Mysql导入sql文件报错1064
    nexus-3.2.0-01.zip安装以及如何启动服务
    JS中函数的词法作用域
    关于JS中函数的返回值的一点死思考
    swich语句的小练习
    sublime的小技巧
    RPC failed; curl 18 transfer closed with outstanding read data remaining
  • 原文地址:https://www.cnblogs.com/sundaysgarden/p/10338612.html
Copyright © 2011-2022 走看看