본문 바로가기
프로그래밍/iOS-Swift

[SWIFT] Lamp On Off App

by 채연2 2021. 3. 31.

1-1. 프로젝트에 사용할 image 드래그

- Copy items if needed 체크!

 

 

 

1-2. 이미지 확인 (lamp_off.png, lamp_on.png)

 

 

 

2-1. 이미지 뷰 추가하기

- 상단에 하얀색 동그라미로 표시한 + 버튼 클릭 후 image view 검색 → 뷰로 드래그

 

 

 

2-2. 이미지 뷰 크기 조정 및 Aspect Fit으로 설정 (뷰에 비율에 맞게 들어가기 위함)

- 오른쪽 상단에 아이콘 7개 중 5번째 아이콘 클릭 → View > Content Mode에서 Aspect Fit 선택

 

 

 

2-3. 버튼 추가하기

- 과정과 똑같이 오른쪽 상단 + 버튼 클릭 후 button 검색 → 뷰로 드래그

 

 

 

3-1. Assistant 선택

 

 

 

3-2. Assistant 선택 후 화면

 

 

 

4-1. 이미지 뷰 Outlet 변수 선언

- 이미지 뷰 클릭 후 오른쪽 마우스로 클릭 → 떼지말고 class 선언부 바로 밑으로 드래그

 

 

4-2. Outlet 변수로 선언

- Name 입력, Type은 UIImageView, Strong 선택

 

 

4-3. 선언한 결과

 

 

4-4. 버튼 Outlet 변수 선언

- 4-1 과정과 같음

 

 

 

4-5. Outlet 변수로 선언

 

 

 

4-6. 결과 확인

 

 

 

4-7. 버튼 Action 정의

- 마우스 오른쪽 버튼으로 드래그 하는 과정은 위와 동일

 

 

 

4-8. Action 정의

- Connection은 Action, Name 입력, Type은 UIButton

 

 

 

4-9. 결과 확인

 

 

 

5. 최종 코드

import UIKit

class ViewController: UIViewController {
    var isOn = false //확대 여부
    var imgLightOn:UIImage?, imgLightOff:UIImage? // lamp 이미지 변수 (UIImage 타입)
    
    @IBOutlet var imgView: UIImageView!
    @IBOutlet var btnChange: UIButton!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        imgLightOn = UIImage(named: "lamp_on.png")
        imgLightOff = UIImage(named: "lamp_off.png")
        imgView.image = imgLightOff;
    }
    
    @IBAction func btnChangeImg(_ sender: UIButton) {
        if(isOn) {
            imgView.image = imgLightOff
            btnChange.setTitle("On", for: .normal)
        } else {
            imgView.image = imgLightOn
            btnChange.setTitle("Off", for: .normal)
        }
        
        isOn = !isOn
    }

}

 

 

 

6. 결과 영상

320x100

'프로그래밍 > iOS-Swift' 카테고리의 다른 글

[SWIFT] View Controller 수명주기  (0) 2021.04.02
[SWIFT] 로컬 파일 로드하는 방법  (1) 2021.03.31
[SWIFT] WKWebView  (0) 2021.03.31
[SWIFT] 기본 연산자  (0) 2021.03.30
[SWIFT] Xcode 프로젝트 생성  (0) 2021.03.30

댓글