UIControl ์ ์ข
๋ฅ
- Button
- Switch
- Slider
- Page Control
- Date Picker
- Segmented Control
- Stepper
UIControl & Taget-Action
UIControl
์ UIView
์ ํ์ํด๋์ค์ด๋ฉฐ, ๊ทธ ๋ฐ์ UIButton
, UISwitch
... ๋ฑ์ ์ปจํธ๋กค๋ฑ์ด ์กด์ฌํ๋ค.
- ์ปจํธ๋กค๋ค์ ์ฌ์ฉ์์ ํฐ์น(์ด๋ฒคํธ)์ ๋ฐ๋ผ Target-Action ๋งค์ปค๋์ฆ์ผ๋ก ๋์ํ๊ฒ ๋๋ค.
- Target ์ง์ ์
addTarget(_:action:for:)
๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค.
์ก์
๋ฉ์๋๋ ์ธ๊ฐ์ง ํ์์ด ์๋ค.
@IBAction func doSomething()
@IBAction func doSomething(sender : UIButton)
@IBAction func doSomething(sender : UIButton, forEvent event : UIEvent)
์ปจํธ๋กค์ ํด๋นํ๋ sender
๋ ๋ฉ์๋๋ฅผ ํธ์ถํ๋ ์ญํ ์ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฒคํธ ํ๋ผ๋ฏธํฐ์ ํด๋นํ๋ UIEvent
๊ฐ์ฒด๋ ์ด๋ฒคํธ์ ํธ๋ฆฌ๊ฑฐ๊ฐ ๋๋ค.
import UIKit
class UIViewController {
}
Selector ์ addTarget ์ ์ฌ์ฉํ์ฌ target ์ฐ๊ฒฐ ์์
(์คํ ๋ฆฌ ๋ณด๋์์๋ ๋ฒํผ๊ณผ button๋ณ์๋ง Outlet ์ฐ๊ฒฐ์ ํด์ค๋ค.)
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var button: UIButton!
@objc func buttonAction(_ sender : Any){
print(#function)
}
override func viewDidLoad() {
super.viewDidLoad()
let actionSelector = #selector(buttonAction(_:))
button.addTarget(self, action: actionSelector, for: .touchUpInside)
}
}
#selector
๋ ์ค๋ธ์ ํธ-c ์์ ์ฌ์ฉ๋๋๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ ํํ ํจ์ ์์ @objc
๋ฅผ ๋ถ์ฌ์ค์ผํ๋ค.