//
// ViewController.swift
// Swift-UIButton
//
// Created by luorende on 16/9/9.
// Copyright © 2016年 luorende. All rights reserved.
//
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
/*
//類型
Custom 圖片類型的按鈕、自定義類型按鈕/前面不帶圖標,默認文字顏色為白色,無觸摸時的高亮效果
System 系統類型的按鈕 (系統自帶類型,默認是藍色的,有觸摸時的高亮效果)
//系統自帶的按鈕類型
ContactAdd (前面帶“+”圖標按鈕,默認文字顏色為藍色,有觸摸時的高亮效果)
DetailDisclosure (前面帶“!”圖標按鈕,默認文字顏色為藍色,有觸摸時的高亮效果)
InfoDark (為感嘆號“!”圓形按鈕)
InfoLight (為感嘆號“!”圓形按鈕)
*/
//創建一個ContactAdd類型的按鈕
let button:UIButton = UIButton(type:.ContactAdd)
//設置按鈕位置和大小
button.frame=CGRectMake(10, 150, 100, 30)
//設置按鈕文字
button.setTitle("按鈕", forState:UIControlState.Normal)
/** 自定義按鈕初始化可簡化*/
let button = UIButton(frame:CGRectMake(10, 150, 100, 30))
//設置按鈕位置和大小
button.frame = CGRectMake(0, 0, 50, 30);
//button 的中心點位置
button.center = CGPointMake(320/2, 568/2);
//設置背景顏色
button.backgroundColor = UIColor.redColor()
//button的狀態及button文本設置
/**
Normal (默認狀態)
Highlighted (高亮狀態)點擊按鈕不放
Disabled (使能狀態)就是是否可用狀態-->禁用的狀態才會顯現
Selected (選中狀態)通過selected屬性設置
*/
button.setTitle("普通狀態", forState:UIControlState.Normal) //普通狀態下的文字
button.setTitle("選中狀態", forState:UIControlState.Selected) //選中狀態下的文字
button.setTitle("觸摸高亮狀態", forState:UIControlState.Highlighted) //觸摸狀態下的文字
button.setTitle("禁用狀態", forState:UIControlState.Disabled) //禁用狀態下的文字
//設置選擇狀態(按鈕是否選中)
//button選中
button.selected = false //未選中
button.selected = true //選中
//使能狀態(按鈕是否可用),默認是 YES 即可用
//button不可用
button.enabled = false //可用
button.enabled = true //不可用
//設置button文本顏色及狀態
button.setTitleColor(UIColor.blackColor(),forState:.Normal) //普通狀態下文字的顏色
button.setTitleColor(UIColor.blackColor(),forState:.Selected) //選中狀態下文字的顏色
button.setTitleColor(UIColor.greenColor(),forState:.Highlighted) //觸摸高亮狀態下文字的顏色
button.setTitleColor(UIColor.grayColor(),forState:.Disabled) //禁用狀態下文字的顏色
//按鈕文字陰影顏色的設置
button.setTitleShadowColor(UIColor.greenColor(),forState:.Normal) //普通狀態下文字陰影的顏色
button.setTitleColor(UIColor.blackColor(),forState:.Selected) //選中狀態下文字陰影的顏色
button.setTitleShadowColor(UIColor.yellowColor(),forState:.Highlighted) //觸摸高亮狀態下文字陰影的顏色
button.setTitleShadowColor(UIColor.grayColor(),forState:.Disabled) //禁用狀態下文字陰影的顏色
//設置 button文本大小(系統默認下的字體大小為:17)
button.titleLabel?.font = UIFont.systemFontOfSize(20)
//設置button背景圖片
button.setBackgroundImage(UIImage(named:"XXX"),forState:.Normal) //設置button默認狀態下背景圖片
button.setBackgroundImage(UIImage(named:"XXX"),forState:.Selected) //設置button選中狀態下背景圖片
button.setBackgroundImage(UIImage(named:"XXX"),forState:.Highlighted) //設置button高亮狀態下背景圖片
//設置button圖片(左邊圖片)
button.setImage(UIImage(named:"XXX"), forState:.Normal)
//button透明度 0~1
button.alpha = 1;
//1、按鍵的邊框設置
// 設置button邊框寬度
button.layer.borderWidth = 2;
// 設置button邊框顏色
button.layer.borderColor = UIColor.redColor().CGColor;
//2、按鍵的圓角設置
// 按鍵設置button圓角
button.layer.cornerRadius = 10;
//按鈕觸摸點擊事件響應
//不傳遞觸摸對象(即點擊的按鈕觸發的事件)兩種寫法
button.addTarget(self,action:#selector(buttonClick),forControlEvents:.TouchUpInside)
button.addTarget(self,action:#selector(ViewController.buttonClick),forControlEvents:UIControlEvents.TouchUpInside)
//事件的響應實現方法
func buttonClick(){
print(“buttonClick”)
}
/**
#selector(buttonClick) 不帶參數
#selector(buttonAtion(_:)) 帶參數,參數即它對象本身
*/
//傳遞觸摸對象(即點擊的按鈕),需要在定義action參數時,方法名稱后面帶上(_:)
button.addTarget(self,action:#selector(buttonAtion(_:)),forControlEvents:.TouchUpInside)
//事件的響應實現方法
func buttonAtion(button:UIButton){
//對應改變按鈕狀態(實現選中與未選中)
if button.selected == false {
button.selected = true;
}else{
button.selected = false;
}
//還有另一種方法
//button.selected = !(button.selected); //一句話搞定(與上面 if 判斷是一樣的)
}