Latest 0.0.1
Homepage https://github.com/parakeety/PKYStepper
License MIT
Platforms ios 6.0, requires ARC
Frameworks Foundation, UIKit, QuartzCore
Authors

PKYStepper CocoaPods CocoaPods CocoaPods

PKYStepper is a customizable UIControl with stepper and label combined.

PKYStepper

Requirements

iOS6+

Features

  • block based callback for when value changed, value incremented, and value decremented
  • toggle visibility of increment/decrement button when the value is at maximun/minimum
  • works well with storyboard

Installation

You can either install using cocoapods(recommended) or copying files manually.

1. Cocoapods(Recommended)

In your Podfile, add a line

pod 'PKYStepper', '0.0.1'

then, run pod install.

2. Copy files manually

  1. Clone this repository
  2. Add files under PKYStepper directory to your project

For objective-c projects

Add #import 'PKYStepper.h' in one of your files, and see if your target builds without error.

For swift projects

You need to create a bridging header and add #import "PKYStepper.h" to the header to use the library in swift code.
For instruction on how to create a bridging header, please refer to Apple’s documentation.

Usage

Example

Creating PKYStepper by storyboard

Drag UIView to your storyboard and change its class to PKYStepper. For actual example, take a look at StoryboardViewController.storyboard in example project.

@property(nonatomic, weak) IBOutlet PKYStepper *stepper;

- (void)viewDidLoad {
    [super viewDidLoad];
    self.stepper.value = 5.0f;
    self.stepper.stepInterval = 5.0f;
    self.stepper.valueChangedCallback = ^(PKYStepper *stepper, float count) {
        stepper.countLabel.text = [NSString stringWithFormat:@"Count: %@", @(count)];
    };
    [self.stepper setup];
}
@IBOutlet weak var stepper: PKYStepper

override func viewDidLoad() {
  super.viewDidLoad()

  stepper.value = 5.0
  stepper.stepInterval = 5.0
  stepper.valueChangedCallback = { stepper, count in
    stepper.countLabel.text = "Dogs: (count)"
  }
  stepper.setup()
}

Creating PKYStepper by code

@property(nonatomic, strong) PKYStepper *stepper;

- (void)viewDidLoad {
  [super viewDidLoad];

  float width = 260.0f;
  float x = ([UIScreen mainScreen].bounds.size.width - width) / 2.0;

  self.stepper = [[PKYStepper alloc] initWithFrame:CGRectMake(x, 100, width, 44)];
  self.stepper.valueChangedCallback = ^(PKYStepper *stepper, float count) {
    stepper.countLabel.text = [NSString stringWithFormat:@"Dogs: %@", @(count)];
  };
  [self.stepper setup];
  [self.view addSubview:self.stepper];
}

Basic Usage

Set a callback and call setup.

PKYStepper *stepper = [[PKYStepper alloc] initWithFrame:frame];
stepper.valueChangedCallback = ^(PKYStepper *stepper, float count) {
  stepper.countLabel.text = [NSString stringWithFormat:@"%@", @(count)];
};
[stepper setup];
[self.view addSubview:stepper];
let stepper = PKYStepper(frame: frame)
stepper.valueChangedCallback = { stepper, count in
  stepper.countLabel.text = "(count)"
}
stepper.setup()
self.view.addSubview(stepper)

Customization

float value; // default: 0.0
float stepInterval; // default: 1.0
float minimum; // default: 0.0
float maximum; // default: 100.0
BOOL hidesDecrementWhenMinimum; // default: NO
BOOL hidesIncrementWhenMaximum; // default: NO
CGFloat buttonWidth; // default: 44.0f

// called when value is incremented
PKYStepperIncrementedCallback incrementCallback;

// called when value is decremented
PKYStepperDecrementedCallback decrementCallback;

// customizing appearance
- (void)setBorderColor:(UIColor *)color;
- (void)setBorderWidth:(CGFloat)width;
- (void)setCornerRadius:(CGFloat)radius;

- (void)setLabelTextColor:(UIColor *)color;
- (void)setLabelFont:(UIFont *)font;

- (void)setButtonTextColor:(UIColor *)color forState:(UIControlState)state;
- (void)setButtonFont:(UIFont *)font;

Further Customization

CountLabel and buttons are exposed as properties, so customize using the properties if you need further control.

Latest podspec

{
    "name": "PKYStepper",
    "version": "0.0.1",
    "summary": "Customizable Stepper Control",
    "description": "                    A customizabel stepper control with stepper & label combined.n",
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    },
    "authors": {
        "yohei okada": "[email protected]"
    },
    "homepage": "https://github.com/parakeety/PKYStepper",
    "platforms": {
        "ios": "6.0"
    },
    "source": {
        "git": "https://github.com/parakeety/PKYStepper.git",
        "tag": "0.0.1"
    },
    "source_files": "PKYStepper/**/*.{h,m}",
    "frameworks": [
        "Foundation",
        "UIKit",
        "QuartzCore"
    ],
    "requires_arc": true
}

Pin It on Pinterest

Share This