APP-iOS3rd / PJ3T2_Mymory

멋쟁이사자처럼 iOS 앱스쿨 3기 팀 프로젝트
10 stars 3 forks source link

feat: CustomAlert 추가 #126

Closed RapidSloth closed 7 months ago

RapidSloth commented 7 months ago

PR 가이드라인

PR Checklist

PR 날릴 때 체크 리스트

PR Type

어떤 종류의 PR인가요?

연관되는 issue 정보를 알려주세요

Issue Number: N/A

PR 설명하기

이 PR에 대해 간략하게 소개해주세요!

  1. 커스텀 Alert 구현
    • xcode 기본 스타일의 경고창 보다는 앱 전체적으로 쓰이는, 즉 앱 컨셉에 맞는 통일된 Alert를 사용하면 좋겠다는 생각이 들어 구현했습니다.
    • alert 버튼에 메서드를 구현하고 싶어 만들었습니다. (Ex. 위치정보동의가 안되어있는 상황에서 설정페이지로 이동 유도)
    • title 부분에는 String 혹은 Image가 들어갈 수 있고, message에는 String만 들어갈 수 있습니다.
    • 버튼은 최대 2개까지 가능하고, 최소 1개는 구현하도록 만들었습니다.
    • .overlay와 동일하게 사용하시면 됩니다.

어떻게 작동하나요? code 기반으로 설명해주세요

아래에 첨부된 스크린샷 순서대로의 코드입니다.

  1. 확인 버튼만 구현 : 타이틀없이 message + button의 형태입니다.
  2. 버튼 2개 구현 : 타이틀 없이 취소 + 확인 버튼을 구현한 모습입니다.
  3. 4: 타이틀 부분을 구현한 모습입니다. 텍스트와 이미지 둘 중 하나를 선택하여 구현할 수 있습니다.
Button {
  self.showingAlert.toggle()
} label: {
  CurrentSpotButton()
}

...

  .moahAlert(isPresented: $showingAlert) {
          MoahAlertView(message: "저장되었습니다.", 
                       firstBtn: MoahAlertButtonView
                              (type: .CONFIRM, 
                               isPresented: $showingAlert,
                               action: { }
                              )
                  )
   }
.moahAlert(isPresented: $showingAlert) {
      MoahAlertView(message: "작성중인 글이 저장되지 않았습니다. 뒤로 가시겠습니까?", 
firstBtn: MoahAlertButtonView(type: .CANCEL, isPresented: $showingAlert, action: {}), 
secondBtn: MoahAlertButtonView(type: .CONFIRM, isPresented: $showingAlert, action: {}))
 }
.moahAlert(isPresented: $showingAlert) {
MoahAlertView(title: "제목", message: "본문입니다.",
firstBtn: MoahAlertButtonView(type: .CONFIRM, isPresented: $showingAlert, action: {}))
                        }
.moahAlert(isPresented: $showingAlert) {
     MoahAlertView(image: Image(systemName: "figure.run"),
    firstBtn: MoahAlertButtonView(type: .CONFIRM, isPresented: $showingAlert, action: {}))
                        }

[.moahAlert]

[MoahAlertView]

[MoahAlertButtonView]


가능하다면 추가해주세요

변경 사항 스크린샷 혹은 화면 녹화

스크린샷 image

image

image

image

기타 언급해야 할 사항들