簡介

按鈕是什麼? 按鈕要怎麼添加? 在iOS按鈕為最基礎元件之一,使用者可以設置文字或圖片設計按鈕,再搭配所需的按鈕事件完成畫面部署及功能,這裡將提供所有UIButton詳細Swift教學。

Button宣告

UIButton裡面繼承的是UIControl
UIControl繼承UIView
所以UIButton也是UIView的一環

class UIButton : UIControl
class UIControl : UIView

Button點擊事件

用戶點擊時會透過Target-Action設計模式來通知你的程式,不直接處理觸摸事件,是透過Interface Builder連結到你的事件。action方式也分下面三種。

xib/storyboard 連接事件

@IBAction func doSomething()
@IBAction func doSomething(sender: UIButton)
@IBAction func doSomething(sender: UIButton, forEvent event: UIEvent)

addTarge 連接事件

button.addTarget(self, action: #selector(doSomething), for: .touchUpInside)
@objc func doSomething()
@objc func doSomething(sender: UIButton)
@objc func doSomething(sender: UIButton, forEvent event: UIEvent)

Button常用手勢介紹

UIEvent裡面有幾種手勢點擊模式

touchDragEnter 按住滑進

Swift UIButton

touchDragExit 按住滑出

Swift UIButton

touchDragOutside 按住滑進

!Swift UIButton

touchDragInside 按住滑出

Swift UIButton

touchDownRepeat 重複點擊

Swift UIButton

touchDown 按下事件

Swift UIButton

touchUpInside 按下放開

Swift UIButton

touchUpOutside 按下在外面放開

Swift UIButton

touchCancel 按住取消

沒式出來

Button Layout 畫面設計

按鈕組合是由以下方官圖示原件組成包括:
– BackgroundImage: 背景圖片
– Image: 按鈕前方圖片
– Title: 顯示文字

Swift UIButton

設置按鈕文字

func setTitle(_ title: String?, for state: UIControl.State)

設置按鈕文字顏色

func setTitleColor(_ color: UIColor?, for state: UIControl.State)

設置按鈕陰影顏色

func setTitleShadowColor(_ color: UIColor?, for state: UIControl.State)

設置按鈕圖片

func setImage(_ image: UIImage?, for state: UIControl.State)

設置按鈕背景圖片

func setBackgroundImage(_ image: UIImage?, for state: UIControl.State)

設置按鈕內建圖示

WWDC 2019年添加
iOS 13.0 以上

func setPreferredSymbolConfiguration(_ configuration: UIImage.SymbolConfiguration?, forImageIn state: UIControl.State)

Swift UIButton

按鈕文字格式

iOS 6.0 以上

func setAttributedTitle(_ title: NSAttributedString?, for state: UIControl.State)

取得按鈕文字

func title(for state: UIControl.State) -> String?

取得按鈕文字顏色

func titleColor(for state: UIControl.State) -> UIColor?

取得按鈕陰影顏色

func titleShadowColor(for state: UIControl.State) -> UIColor?

取得按鈕圖片

func image(for state: UIControl.State) -> UIImage?

取得按鈕背景圖案

func backgroundImage(for state: UIControl.State) -> UIImage?

取得按鈕內建圖示

@available(iOS 13.0, *)

func preferredSymbolConfigurationForImage(in state: UIControl.State) -> UIImage.SymbolConfiguration?

取得按鈕文字格式

@available(iOS 6.0, *)

func attributedTitle(for state: UIControl.State) -> NSAttributedString?

取得按鈕當前文字

var currentTitle: String? { get }

取得按鈕當前文字顏色

var currentTitleColor: UIColor { get }

取得按鈕當前陰影顏色

var currentTitleShadowColor: UIColor? { get } 

取得按鈕當前圖片

var currentImage: UIImage? { get } 

取得按鈕當前背景圖片

var currentBackgroundImage: UIImage? { get } 

取得按鈕當前內建圖示

@available(iOS 13.0, *)

var currentPreferredSymbolConfiguration: UIImage.SymbolConfiguration? { get } 

取得按鈕當前文字格式

@available(iOS 6.0, *)

var currentAttributedTitle: NSAttributedString? { get }

按鈕上的文字元件

@available(iOS 3.0, *)

var titleLabel: UILabel? { get }

按鈕上的圖片元件

@available(iOS 3.0, *)

var imageView: UIImageView? { get }

取得背景座標

func backgroundRect(forBounds bounds: CGRect) -> CGRect

取得內容座標

func contentRect(forBounds bounds: CGRect) -> CGRect

取得文字坐標

func titleRect(forContentRect contentRect: CGRect) -> CGRect

取得圖片座標

func imageRect(forContentRect contentRect: CGRect) -> CGRect

內鈕內容位移

var contentEdgeInsets: UIEdgeInsets 

按鈕文字內容位移

var titleEdgeInsets: UIEdgeInsets 

按鈕陰影在上或在下

var reversesTitleShadowWhenHighlighted: Bool 

按鈕圖片位移

var imageEdgeInsets: UIEdgeInsets

按鈕點擊時變暗

點下暗掉 彈起亮起來

var adjustsImageWhenHighlighted: Bool 

按鈕禁用時變暗

button.isEnabled = false
變暗

var adjustsImageWhenDisabled: Bool

按鈕點擊時圖片發光

var showsTouchWhenHighlighted: Bool 

按鈕文字顏色元件

@available(iOS 5.0, *)

var tintColor: UIColor!

按鈕文字顏色元件

var buttonType: UIButton.ButtonType { get }
UIButtonTypeCustom
UIButtonTypeRoundedRect
UIButtonTypeDetailDisclosure
UIButtonTypeInfoLight
UIButtonTypeInfoDark
UIButtonTypeContactAdd

Swift UIButton

出處

Swift UIButton

Swift更多文章

[教學] Swift 找字串 文字找字串


Swift字串拼接 文字拼接
Swift 字串擷取 文字擷取
Swift – 陣列轉字串 | Array to String | List to String | description
Swift Date 現在星期幾 這個月有幾天
Swift – 正規表達式 (電話/身分證/email)


Swift更多文章

Swift 彈出視窗 AlertController 的使用方法 💥

Swift 判斷螢幕方向 📱

Swift Core Data 實現 💾🔥

Swift UISegmentedControl 💻分段控制器!

Swift 實現抽屜效果 🧹

Categorized in: