상세 컨텐츠

본문 제목

[swift / iOS] UIAlert, Custom Alert

IOS/키워드 정리

by 카키IOS 2022. 11. 18. 12:36

본문

1. Base UIAlert

버튼이 없는 UIAlert의 틀 입니다.

 

2. One Button UIAlert

하나의 버튼이 들어간 UIAlert 입니다.

 

3. Normal UIAlert

취소버튼, 확인버튼 두개의 버튼이 들어간 일반적인 UIAlert의 형태입니다.

cancel 속성을 가진 버튼의 텍스트는 볼드(Bold) 처리됩니다.

4. More than three Buttons UIAlert

3개 이상의 버튼이 들어가면 가로 배치의 버튼에서 세로 배치의 버튼으로 바뀌며,

cancel 속성을 가진 버튼은 가장 하단으로 내려갑니다.


5. Custom UIAlert

UIAlert을 좀 더 개발자답게 사용하기 위해서 커스텀하게 만들어봅시다.

 

이런식으로 메서드를 작성하면 1. Base UIAlert과 같은 코드가 됩니다.

6. Completed Custom UIAlert Method

완성된 Custom Alert Method 입니다.

//1.
func customAlert(alertTitle: String?, alertMessage: String?, alertStyle: UIAlertController.Style, actions: UIAlertAction?...) {
    //2.
    let alertController = UIAlertController(title: alertTitle, message: alertMessage, preferredStyle: alertStyle)
    //3.
    let okButton = UIAlertAction(title: "Ok", style: .default)

    //4. 
    for action in actions {
        alertController.addAction(action ?? okButton)
    }

    //5.
    self.present(alertController, animated: true)
}

//1. customAlert 메서드의 매개변수로 UIAlertController가 필요로 하는 파라미터를 그대로 적어줍니다
// (title, message, preferredStyle)
// actions 파라미터를 UIAlertAction으로 타입을 지정해줍니다
// UIAlertAction을 옵셔널(뒤에 물음표 -> ?) 타입으로 만들어 준 이유는 action에 아무것도 안들어가는 조건을 처리하기 위함입니다.
// UIAlertAction에 점점점(...)이 붙은 이유는 2개 이상의 action을 처리하기 위함입니다
// 만약 action에 단 1개의 액션이 들어온다면 UIAlertAction? 으로 구성해주면 됩니다.

//2. customAlert 메서드의 파라미터는 UIAlertController의 틀을 구성하게 됩니다.

//3. 아무런 action이 추가되지 않아서 크래쉬가 나는걸 방지해서 action을 옵셔널 바인딩 처리한 default버튼인 okButton 액션을 넣어줍니다.
// 1번에서 UIAlertAction?(옵셔널 UIAlertAction타입)을 처리해주기 위함입니다

//4. 추가된 액션 버튼을 alert에 넣어줍니다

//5. 완성된 얼럿을 띄워줍니다

 

7. Using Custom UIAlert

커스텀 얼럿 메서드를 활용해 봅시다.

이런식으로 커스텀 얼럿을 활용할 수 있습니다.

 

8. Custom UIAlert with Function Button

기능이 들어간 버튼을 만드는 방법입니다.

action의 handler 클로저타입 파라미터를 활용하면 해당 버튼에 기능을 추가할 수 있습니다.

 

((UIAlertAction) -> Void)?에 엔터를 치면 다음과같은 후행 클로저로 변형이 됩니다

 

728x90
반응형

관련글 더보기