[ 부스트코스 ] 프로젝트 B

이숭인·2021년 8월 23일
0

프로젝트 B

Project B


발생했던 문제

  1. 로그인 화면 - AutoLayout
  2. Signup - 키보드 이슈

처음 써봄

  1. UIButton의 isEnabled 속성
  2. ImagePicker 의 allowsEditing, sourceType 속성
  3. modal, Navigation 을 상황에 맞게 사용
  4. dateFormatter 형식
  5. dataPicker 사용법



로그인화면



오토레이아웃

부스트 코스의 프로젝트 B 요구사항은 아니지만 ID, Password 를 입력할 때 키보드 가림 현상 을 방지하기 위해 AutoLayout 을 설정 했다.

왜?

기기마다의 사이즈가 다르기 때문.
가장 작은 사이즈인 아이폰4s 에서의 테스트 결과 ID , Password 를 입력할 때 입력창이 키보드에 가려짐 을 확인 했음
키보드 가림 현상을 방지하는 방법은 많겠지만, 예전에 배웠던 AutoLayout 강의에서 해봤던 기억이 있어 AutoLayout 으로 도전!


어떻게 했냐!

  1. 우선 id, password, sign in, sign up 버튼을 StackView 에 담아두었어요.

  2. 그리고 나서 StackView의 Bottom Margin을 SuperView 에 설정했구요.

  3. 키보드가 올라올때에 키보드 노티피케이션을 이용해 키보드 높이 정보를 받아오고, 이때 StackView의 Bottom Margin 값을 키보드 높이로 설정해주면 전체적인 뷰 컴포넌트들이 위로 올라가게 되어서 키보드에 가려지는 현상을 막을 수가 있어요.

  4. 마찬가지로 키보드가 내려갈 때에는 StackView의 Bottom Margin을 원상태로 돌려주면 이전과 같은 화면으로 돌려줄 수가 있어요.


검색이나 강의를 보면서 키보드에 가려질때 처리하는 방법을 많이 배웠었는데, 정말 많은 방법이 있는 것 같아요. 상황에 따라 해줘야하는 작업들이 다 달라서 딱 이거다! 하는 정답은 없었던 것 같아요..

예전에 배웠던걸 복습도 해볼겸해서 만들어봤는데 잘 하진 못했지만 어떻게 해야할까 고민해볼 수 있었던 시간이었던 것 같네요 👍




Signup 1 , ImagePicker



1. 키보드 이슈

큰 문제가 발생하지는 않았지만 비밀번호, 비밀번호 확인 TextField 를 터치했을때 위와 같은 메세지 로그가 찍히는걸 확인했다.

앱이 크래시가 나거나 하진 않았지만 너무 찝찝한 마음에 알아보던 도중,, 키보드 확장에 관한 문제인 것을 확인했다.

Apple application(_:shouldAllowExtensionPointIdentifier:) 문서

내용을 확인해보면 "앱 확장을 사용할 수 있는 권한을 부여하도록 대리인에게 요청합니다." 라는 문구를 확인할 수 있고, 문서에서 설명하고 있는 Delegate Method 를 사용해서 키보드 앱 확장 을 허용하지 않게 되면 저 에러 메세지는 발생하지 않게 된다.

해결법!

AppDelegate 에 작성

func application(_ application: UIApplication, shouldAllowExtensionPointIdentifier extensionPointIdentifier: UIApplication.ExtensionPointIdentifier) -> Bool {
        if extensionPointIdentifier == UIApplication.ExtensionPointIdentifier.keyboard {
            return false
        }
        return true
    }

2. UIButton의 isEnabled 속성

Apple isEnabled 문서

UIButton 이 상속하고 있는 UIControl 의 프로퍼티 isEnabled

true 라면 사용 가능, false 라면 사용 불가


3. ImagePicker 의 allowsEditing, sourceType 속성




Signup 2


1. dateFormatter

  • dateStyle

Apple DateFormatter - dateStyle 문서

  • timeStyle

Apple DateFormatter - timeStyle 문서

두 종류가 존재한다. 이거에 대해서는 나중에 자세히 해보는게 나을것 같다.


2. dataPicker 사용법


profile
iOS Developer

0개의 댓글