Create UIButton Programmatically

This is a very short example but contains a lot of useful details like:

  • Create UIButton programmatically in Swift
  • Position UIButton on a view
  • Add an action to UIButton, so that when it is tapped your function is called
  • Set UIButton Title for specific UIControlState
  • Change UIButton background colour
  • Change UIButton foreground text colour
import UIKit

class ViewController: UIViewController {
    override func viewDidLoad() {
        // Do any additional setup after loading the view, typically from a nib.
        let button = UIButton(type: UIButtonType.system) as UIButton
        let xPostion:CGFloat = 50
        let yPostion:CGFloat = 100
        let buttonWidth:CGFloat = 150
        let buttonHeight:CGFloat = 45
        button.frame = CGRect(x:xPostion, y:yPostion, width:buttonWidth, height:buttonHeight)
        button.backgroundColor = UIColor.lightGray
        button.setTitle("Tap me", for: UIControlState.normal)
        button.tintColor =
        button.addTarget(self, action: #selector(ViewController.buttonAction(_:)), for: .touchUpInside)
    func buttonAction(_ sender:UIButton!)
        print("Button tapped")
    override func didReceiveMemoryWarning() {
        // Dispose of any resources that can be recreated.

Learn iOS Development with these Video Courses

How to Make a Freaking iPhone App - iOS 10 and Swift 3
icon icon

iOS 10 & Swift 3: From Beginner to Paid Professional

The Complete iOS 10 Developer Course - Build 21 Apps

Swift 3 - Learn to Code with Apple's New Language
icon icon

Learn How to Build Mobile Apps for iOS with Swift, PHP and MySQL
icon icon

Follow me on one of your favourite social networks to learn about new video tutorials and code examples:

Twitter: @SwiftVideoBlog
Google Plus:
Facebook: Swift Developer Blog on Facebook