23.12.19 TIL UIKit 2. Intro to UIControls

Hay·2023년 12월 19일
0

iOS with UIKit

목록 보기
2/2

Intro to UIControls

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이 알아서 해준다)
    }
}

0개의 댓글