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

  • 相关阅读:
    Go语言基础之map
    Go语言基础之切片
    Go语言基础之数组
    Go语言fmt.Printf使用指南
    Go语言基础之流程控制
    Go语言基础之运算符
    Go语言基础之变量和常量
    Go语言环境搭建
    随笔
    使用SocketServer 创建TCP服务端
  • 原文地址:https://www.cnblogs.com/sundaysgarden/p/10338612.html
Copyright © 2011-2022 走看看