No Description

mortimer 21932aaaf0 a 6 years ago
..
HMSegmentedControl 21932aaaf0 a 6 years ago
.DS_Store 21932aaaf0 a 6 years ago
LICENSE.md 21932aaaf0 a 6 years ago
README.md 21932aaaf0 a 6 years ago

README.md

HMSegmentedControl

Pod Version Pod Platform Pod License

A drop-in replacement for UISegmentedControl mimicking the style of the segmented control used in Google Currents and various other Google products.

Features

  • Supports both text and images
  • Support horizontal scrolling
  • Supports advanced title styling with text attributes for font, color, kerning, shadow, etc.
  • Supports selection indicator both on top and bottom
  • Supports blocks
  • Works with ARC and iOS >= 7

Installation

CocoaPods

The easiest way of installing HMSegmentedControl is via CocoaPods.

pod 'HMSegmentedControl'

Old-fashioned way

  • Add HMSegmentedControl.h and HMSegmentedControl.m to your project.
  • Add QuartzCore.framework to your linked frameworks.
  • #import "HMSegmentedControl.h" where you want to add the control.

Usage

The code below will create a segmented control with the default looks:

HMSegmentedControl *segmentedControl = [[HMSegmentedControl alloc] initWithSectionTitles:@[@"One", @"Two", @"Three"]];
segmentedControl.frame = CGRectMake(10, 10, 300, 60);
[segmentedControl addTarget:self action:@selector(segmentedControlChangedValue:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:segmentedControl];

Included is a demo project showing how to fully customise the control.

HMSegmentedControl

Change log

  • v1.5
    • Adds advanced styling support for default and selected state with ability to customize kerning, shadow, stroke color and width, ligature, baseline offset, paragraph style, etc.
    • A few of the control style attributes can now be customized using UIAppearance.
    • Adds ability to specify a border type, color and width.
    • Drops support for older iOS versions. Now works with iOS 7 and above.
    • Lots of bug fixes.
  • v1.4
    • Lots of bug fixes
    • Add AutoLayout support
    • Adds HMSegmentedControlSelectionStyleArrow
    • Adds support for non-animated selections.
    • Adds support for custom box layer opacity.
    • Add support for multi-line labels on iOS 7+
    • Updated documentation in header file
  • v1.3.0
    • Introducing horizontal scrolling via scrollEnabled property. Check example project
    • Adds XIB/Storyboard support
    • Fixes deprecations when building with iOS 7 SDK
    • Updates example project to support iOS 7
    • Code refactoring and cleanup
  • v1.2.0
    • Added new selection indicator style: HMSelectionIndicatorBox
    • Added ability to set text colour for selected segment (thanks to @jmkr)
    • Segment titles are now added in a separate CATextLayer, and images are drawn in a separate CALayer
    • Calls to index change block/selector now happen before the animation starts
    • Lots of code refactoring and clean up
  • v1.1.0 (merged pull request from @jacksonpan)
    • Added image support
    • Support for changing selection indicator position
  • v1.0.0
    • Initial release

Apps using HMSegmentedControl

If you are using HMSegmentedControl in your app or know of an app that uses it, please add it to this list.

License

HMSegmentedControl is licensed under the terms of the MIT License. Please see the LICENSE file for full details.

If this code was helpful, I would love to hear from you.

@HeshamMegid
http://hesh.am