Skip to content

A collection of battle-tested UI components ⚙️

License

Notifications You must be signed in to change notification settings

Acuta/ControlsKit

Repository files navigation

ControlsKit

Version Platform Languages Carthage compatible License

Build Status codecov

Example

To run the example project, clone the repo, open the workspace and run ControlsKitExample.

Requirements

iOS 8.0

Description

This is a list of components that have been developped over the course of multiple years, and have been used in a dozen of projects so far. They aim to either be a drop-in replacement for existing controls with more customizations, or provide additional features on top of existing controls.

NibView

Allows to use Interface Builder to create the layout of a view inside a xib file, which can be then be loaded like any views.

PageControl

PageControl

Re-implemented from scratch and fully customizable, our Page Control allows to do in just a few lines what would take hundreds if subclassing the native one (not to mention the dirty overrides usually implied).

  • Specify your custom active/inactive dot images (with possibly most-left and most-right ones different)
  • Specify spacing between dots (animatable)
  • Enjoy all other possibilities the native Page Control provides via the very same API

PlaceholderTextView

A subclass of UITextView which provides a placeholder text.

Switch

Switch

The native UISwitch often forces developers to implement their own custom subclass because of its limitations. Our Switch subclass should address the most common ones:

  • Inability to set a background off color to replace the native grey one

Addition of new offTintColor property (counterpart of native onTintColor property)

  • Unreliable logic when setting or removing onImage and offImage with current color

Refined logic so onImage takes precedence over onTintColor if set: the image is seen, the on tint color is not seen. If onImage is nil, the onTintColor is shown. The same logic applies to offTintColor and all combinations are totally customizable, reliably, at all times.

Installation

Via CocoaPods

ControlsKit is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod 'ControlsKit', '~> 1.0'

By default, the Swift version of the library is fetched. If you want to just use the Objective-C version, just add the following line instead in your Podfile:

pod 'ControlsKit/ObjC', '~> 1.0'

Likewise, you might not want to pull all controls at once if you're just using one. So for example, if you wanted to just use the PlaceholderTextView in your project, just add the following:

pod 'ControlsKit/PlaceholderTextView/Swift', '~> 1.0'

(You can also replace Swift by ObjC should you want to use the Objective-C version)

Via Carthage

ControlsKit is also available through Carthage. To install it, simply add the following line to your Cartfile:

github "Acuta/ControlsKit" ~> 1.0

If you use Carthage to build your dependencies, just add ControlsKit.framework to the "Linked Frameworks and Libraries" section of your target, and make sure you've included them in your Carthage framework copying build phase.

Authors

License

ControlsKit is available under the MIT license. See the LICENSE file for more info.