Skip to content
A fully customisable swift subclass on UIButton which allows you to create beautiful buttons without writing any line of code.
Branch: master
Clone or download
Latest commit cfee3d9 Apr 7, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
Example Added new screenshot for new feature Jan 17, 2018
.swift-version Added new screenshot for new feature Jan 17, 2018
JSButton.podspec Added new screenshot for new feature Jan 17, 2018
LICENSE Initial commit Jul 31, 2017 updated author section Apr 6, 2018
_Pods.xcodeproj Initial commit Jul 31, 2017


Version License Platform Language Twitter PRs Welcome


$ 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


  • iOS 8.3+
  • Xcode 9.0
  • Swift 4.0


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.


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


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!")


 Jogendra Singh

What's next

  • Any suggestions?


  • 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


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

You can’t perform that action at this time.