UIKIt에는 오브젝티브-c에서 유래된(?) 것들이 남아있는 것 같다
//swift는 굉장히 strcit한 언어이지만,
//IBAction은 (스위프트가 만들어지기 전) 오브젝티브-C에서 만들어진 것이기 때문에
//스위프트의 strict한 규칙을 따르지 않는다.
//UIKit은 스위프트가 만들어지기 전 오브젝티브-C를 사용할때 만들어진 것이라서
//class의 상속이 많다
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
//뷰컨트롤러에서 라이브러리를 이용해서 버튼을 추가하지 않고도
//이렇게 코딩해서 버튼을 추가할 수도 있다
let button = UIButton(type: .system)
button.setTitle("Push Me", for: .normal)
button.frame = CGRect(x: 20, y: 20, width: 200, height: 100)
//아래는 objective-c 에서 사용하던게 남아있는 방법
button.addTarget(self, action: #selector(doAnotherThing), for: .touchUpInside)
view.addSubview(button)
}
//@objc -> Objective-C
@objc func doAnotherThing(_ button: UIButton) {
print("Pushed")
}
//버튼이 눌렸을 때 실행된다
@IBAction func doSomething(_ sender: Any) {
print("Hello")
}
@IBAction func touchDown(_ sender: Any) {
print("button down")
}
//slider의 값이 변경될 때마다 실행된다.
//(_ sender: Any) -> 이름과 타입을 변경할 수 있다
@IBAction func sliderChanged(_ slider: UISlider) {
print("value changed \(slider.value)")
//복잡한 코드를 짜지 않아도 UIKit을 이용하면
//User interaction을 간단하게 구현할 수 있다.(UIKit이 알아서 해준다)
}
}