본문 바로가기
컴퓨터 공학/Swift

[스위프트] 얼럿 Alert 사용하기(예제 포함)

by hahehohoo 2020. 4. 28.
반응형

iOS프로그래밍 2020 Xcode Swift 스위프트_얼럿 Alert 사용하기

Xcode Version 11.4.1

 

얼럿은 사용자에게 중요한 알림이나 경고 메세지를 나타내야 할 때 사용합니다. 

안드로이드의 스낵바(snack bar)와 같은 효과를 낼 수 있죠. 

그럼 간단한 예제로 iOS 얼럿(Alert)을 익혀봅시다.

 

 

 

 

 

✔️ 예제를 따라하기 앞서 새 프로젝트 생성 방법을 알고 싶으면 링크를 참고해주세요.

 

STEP 1 새 프로젝트를 만들고 적당한 이미지 2개 추가하기

- 원하는 이미지 2개를 프로젝트에 드래그해서 추가합니다

- 뜨는 설정창에서 Copy items if needed를 체크하고 Finish를 누릅니다.

 

 

STEP 2 이미지 뷰 추가하기

- 스토리보드에 이미지 뷰를 추가합니다.  

 

STEP 3 Content Mode fmf [Aspect Fit]로 수정

- 이미지의 원본의 비율을 유지하기 위해서 Aspect Fit으로 수정합니다.

 

 

STEP 4 버튼 추가하기

- 버튼 2개를 추가합니다. 

- 버튼을 더블클릭하여 '끄기', '켜기'로 텍스트를 변경합니다. 

 

STEP 5 이미지 뷰에 대한 아웃렛 변수 추가하기

- 오른쪽에 보조 편집기를 열어줍니다.

 

 

 

STEP 6 버튼에 대한 액션 함수 추가하기

 

STEP 7 상수 및 변수 추가하기

- 코딩에 필요한 상수과 변수를 뷰 컨트롤러 클래스 선언문 바로 아래에 추가합니다.

- UIImage(named: "이미지 파일명")

- isLampOn: 전구가 켜졌는지의 여부를 나타내는 변수, 켜진 상태는 true, 꺼진 상태는 false 

 

STEP 8 이미지 보여주기

- 앱을 처음 시작할 때 전구가 켜져 있는 이미지를 보여 주기 위해 viewDidLoad 함수 내의 lampImg 객체에 imgOn를 대입합니다.

STEP 9 '끄기' 버튼 클릭 시 동작하는 함수 만들기

 

다음과 같이 if문을 구성할 것입니다. 

 

if ( 전구가 꺼져있음 ) {

     // '이미 꺼져있다'는 메세지 띄움

     // 아무 변화 없음

} else {

     // 정말 끌건지 확인하는 메세지 띄움

     // 네(=끈다) -> 꺼진 이미지로 바꿈

     // 아니요(=그냥 둔다) -> 아무 변화 없음

}

 

■ if

 

■ else

STEP 10 '켜기' 버튼 클릭 시 동작하는 함수 만들기

 

다음과 같이 if문을 구성할 것입니다. 

문법 해석은 위의 '꺼기'버튼과 같아 생략합니다.

 

if ( 전구가 켜져있음 ) {

     // '이미 켜져있다'는 메세지 띄움

     // 아무 변화 없음

} else {

     // 정말 켤건지 확인하는 메세지 띄움

     // 네(=켠다) -> 켜진 이미지로 바꿈

     // 아니요(=그냥 둔다) -> 아무 변화 없음

}

 

STEP 11 시뮬레이터를 실행하여 결과 확인하기

 

 

 

완성본 캡쳐 이미지(iphone 11)

 

예제 전체 코드는 더보기는 눌러 확인해주세요.

더보기

 

//

//  ViewController.swift

//  AlertSample

//

//  Created by hahehohoo on 2020/04/27.

//  Copyright © 2020 hahehohoo. All rights reserved.

//

 

import UIKit

 

class ViewController: UIViewController {

    let imgOn = UIImage(named: "lamp-on.png")

    let imgOff = UIImage(named: "lamp-off.png")

    var isLampOn = true

    

    @IBOutlet var lampimg: UIImageView!

    

    override func viewDidLoad() {

        super.viewDidLoad()

        // Do any additional setup after loading the view.

        lampimg.image = imgOn

    }

    

    //끄기 버튼 누르면

    @IBAction func btnLampOff(_ sender: UIButton) {

        if (isLampOn==false) { //전구가 꺼져있으면

            

            let lampOnAlert = UIAlertController(title: "알림", message: "이미 램프가 꺼져있습니다.", preferredStyle: UIAlertController.Style.alert)

            

            let onAction = UIAlertAction(title: "알겠습니다.", style: UIAlertAction.Style.default, handler: nil)

            

            lampOnAlert.addAction(onAction)

            

            present(lampOnAlert, animated: true, completion: nil)

            

            isLampOn = false

        }else{

            

            let lampOffAlert = UIAlertController(title: "알림", message: "램프를 끄겠습니까?", preferredStyle: UIAlertController.Style.alert)

            

            let offAction = UIAlertAction(title: "네",style: UIAlertAction.Style.default, handler: {ACTION in self.lampimg.image = self.imgOff

                self.isLampOn = false})

            

            let cancelAction = UIAlertAction(title: "아니요",

                                      style: UIAlertAction.Style.default,

                                      handler: nil)

            

            lampOffAlert.addAction(offAction)

            lampOffAlert.addAction(cancelAction)

            

            present(lampOffAlert, animated: true,completion: nil)

        }

    }

     //켜기 버튼 누르면

    @IBAction func btnLampOn(_ sender: UIButton) {

        if(isLampOn==true){//전구가 켜져있으면

            let lampOnAlert = UIAlertController(title: "알림", message: "이미 램프가 켜져있습니다.", preferredStyle: UIAlertController.Style.alert)

            let onAction = UIAlertAction(title: "알겠습니다.", style: UIAlertAction.Style.default, handler: nil)

            lampOnAlert.addAction(onAction)

            present(lampOnAlert, animated: true, completion: nil)

            isLampOn = true

        }else{

            let lampOnAlert = UIAlertController(title: "알림", message: "램프를 켜겠습니까?", preferredStyle: UIAlertController.Style.alert)

            let offAction = UIAlertAction(title: "네",style: UIAlertAction.Style.default, handler: {ACTION in self.lampimg.image = self.imgOn

                self.isLampOn = true})

            let cancelAction = UIAlertAction(title: "아니요",

                                      style: UIAlertAction.Style.default,

                                      handler: nil)

            lampOnAlert.addAction(offAction)

            lampOnAlert.addAction(cancelAction)

            

            present(lampOnAlert, animated: true,completion: nil)

        }

    }

}

 

 

 

 

 

 

 

🌕 🌖 🌗 🌘 🌑 🌒 🌓 🌔 🌕

오  늘  도  수  고  하  셨  습  니  다 

 

--------------------------

iOS프로그래밍 학습을 위해

더 많은 예제 보러가기 

--------------------------

 

 

 

 

 

 

 

반응형


댓글