[iOS] Alert, 알림창 발생 시키기

!·2022년 7월 28일
0

iOS

목록 보기
1/22

UpDownGame를 만들어 보면서 경고(알림창) 발생 시키는 함수가 필요하게 되었다. 게임이 지거나 끝났을 때, 알림창을 발생시키고자 하였는데 이에 해당하는 함수와 경고창에 대해 정리해볼겸 포스팅 함!


Alert 구조

  • title : 경고창의 title 파트이다.
  • content : 경고창의 content 파트이며, 일반적으로 경고의 내용이 포함된다.
  • Action : 위 경고창에서는 확인, 취소에 해당하는 영역이며, 경고창의 따른 행동이라고 생각하면 된다.

코드

func showAlert(message : String){
        let alert = UIAlertController(title: nil, message: message, preferredStyle: .alert);
        let okAction = UIAlertAction(title: "OK", style: .default) { (action) in
            self.reset()
        }
        alert.addAction(okAction);
        present(alert,animated: true,completion:nil);
        
    }
  • 경고창 발생은 UIAlertController() 를 통해 생성하고 있으며, title과 message는 상황에 맞게 넣으면 된다.
  • preferedStyle 에는 크게 .alert 인자와 .actionSheet 인자를 전달할 수 있다.

.alert를 전달한 경우

화면 중앙에 우리가 흔히 알 수 있는 경고창과 같이 나타난다.

.actionSheet를 전달한 경우

화면 아래에서 올라오는 경고창으로, 경고의 의미라기보다는 선택창의 의미로도 쓸 수 있을만 하다.


  • 액션 버튼은 UIAlertAction() 를 통해 생성하고 있으며 title은 상황에 맞게 넣으면 된다.
  • sytle 에는 .default.cancel, destructive 의 인자를 전달할 수 있다.

.defalut를 전달한 경우

.cancel를 전달한 경우

.destructive를 전달한 경우

정리하자면 UIAlertController() 를 통해 경고창의 내용, 틀, 나타나는 위치를 잡고, UIAlertAction() 으로 액션 버튼을 만든다.
.addAction() 에 액션 버튼을 전달해 경고창을 완성한다.

  • 사실 UIAlertAction(title: "OK", style: .default, handler: ({func -> Void)} 가 원형이다. handler 에는 버튼을 클릭시에 어떤 행동을 할 지 전달할 수 있다. 이는 스위프트에서 제공하는 다른 표현으로 바꾼다면, UIAlertAction(title: "OK", style: .default) { // 원하는 행동} 으로 정의할 수도 있다.

present() 는 경고창을 발생시키는 역할을 헌다. 첫번째 인자에 경고를 전달하고 animated에는 true, false 를 전달할 수 있다. true의 경우에는 경고가 나타날때 애니메이션 효과가 있으며, false를 전달한 경우에는 애니메이션 효과가 없다.
completion: 에는 나타난 후 어떤 행동을 할 것인가를 정의할 수 있다. 아무 행동을 정의할 것이 없다면 nil 을 전달하면 된다.

profile
개발자 지망생

0개의 댓글