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프로그래밍 학습을 위해
더 많은 예제 보러가기
--------------------------
'컴퓨터 공학 > Swift' 카테고리의 다른 글
[스위프트] 페이지컨트롤 page control 만들기(예제포함) (413) | 2020.04.29 |
---|---|
[스위프트] Info.plist 파일 수정하기 (예제포함) (391) | 2020.04.29 |
[스위프트]입문자를 위한 Xcode iOS프로그래밍 총정리 및 공부방법 (446) | 2020.04.24 |
[스위프트] Timer 타이머 작동시키기 (388) | 2020.04.24 |
[스위프트] 데이트 피커 모드 변경, 한국어 날짜 표기 방법 (373) | 2020.04.24 |
댓글