Skip to content

A fully customisable swift subclass on UIButton which allows you to create beautiful buttons without writing any line of code.

License

Notifications You must be signed in to change notification settings

jogendra/JSButton

Repository files navigation

JSButton

Version License Platform Language Twitter PRs Welcome

Demo

$ pod try JSButton

...or clone this repo and build and run/test the JSButton project in Xcode to see JSButton in action. If you don't have CocoaPods installed, grab it with [sudo] gem install cocoapods.

$ cd Example
$ pod install
$ open JSButton.xcworkspace

Requirements

  • iOS 8.3+
  • Xcode 9.0
  • Swift 4.0

Installation

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

pod "JSButton"

Manual Installation

Just drag the JSButton.swift files into your project.

IBDesignable

JSButton includes IBInspectable annotations to enable configuring the label inside Interface Builder. However, if you see these warnings when building...

IB Designables: Failed to update auto layout status: Failed to load designables from path (null)
IB Designables: Failed to render instance of JSButton: Failed to load designables from path (null)

...then you are likely using JSButton as a static library, which does not support IB annotations. Some workarounds include:

  • Install JSButton as a dynamic framework using CocoaPods with use_frameworks! in your Podfile, or with Carthage
  • Install JSButton by dragging its source files to your project

Usage

Creating a view from the storyboard

  • If you already have a Label where you want to use then set it's class to JSButton in identity inspector.

  • Or drag a Button from object library and then change it's class to JSButton in identity inspector.

  • Set the module property to JSButton.

Add JSButton to storyboard

  • Customize the view properties in the attributes inspector.

Attributes inspector Attributes inspector

Add action to button

To add action to your button just use .action you dont have to add Target and then handler function.

yourButton.action {
  print("Button Pressed!")
}

Author

 Jogendra Singh

What's next

  • Any suggestions?

Contribution

  • If you found a bug, open an issue
  • If you have a feature request, open an issue
  • If you want to contribute, submit a pull request
  • If you have any issue or want help, please drop me a mail on [email protected]

License

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