Closed Fezravien closed 3 years ago
상품 등록을 위한 Request를 만들기 위해서는 서버 API 에서 제공하는 multipart/form-data 형식을 이용해야 함
multipart/form-data
Image : 최대 5장 각각 300KB 미만 Title : 글자수 0 이상 Currency : PickView KRW, JPY, USD
Image
Title
Currency
Price : 0 이상의 정수 DiscountPrice : 0 이상의 정수 (옵셔널) Stock : 0 이상의 정수
Price
DiscountPrice
Stock
충족되지 못하면 Alert을 띄워서 사용자에게 알림
private func setKeyboardObserver() { NotificationCenter.default.addObserver(self, selector: #selector(adjustForKeyboard), name: UIResponder.keyboardWillChangeFrameNotification, object: nil) NotificationCenter.default.addObserver(self, selector: #selector(adjustForKeyboard), name: UIResponder.keyboardWillHideNotification, object: nil) } @objc func adjustForKeyboard(notification: Notification) { guard let keyboardValue = notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue else { return } let keyboardScreenEndFrame = keyboardValue.cgRectValue let keyboardViewEndFrame = view.convert(keyboardScreenEndFrame, from: view.window) if notification.name == UIResponder.keyboardWillHideNotification { itemDescription.contentInset = .zero } else { itemDescription.contentInset = UIEdgeInsets(top: 15, left: 10, bottom: keyboardViewEndFrame.height - view.safeAreaInsets.bottom, right: 10) } itemDescription.scrollIndicatorInsets = itemDescription.contentInset let selectedRange = itemDescription.selectedRange itemDescription.scrollRangeToVisible(selectedRange) }
키보드가 만약 TextView의 커서를 가리게 된다면, textview.contentInset 을 (키보드의 크기 - 뷰의 safeArea.bottom) 크기 계산을 하여 커서를 키보드 위에 위치시킨다.
TextView
상품 등록이 정상적으로 동작한다면 등록 완료 Alert을 통해 사용자에게 성공을 알리고, 메인 페이지로 이동 후 등록된 상품을 상세 페이지를 통해 보여준다
등록 완료
구현내용
새로운 상품 등록하기
서버에 상품 등록 요청
상품 등록을 위한 Request를 만들기 위해서는 서버 API 에서 제공하는
multipart/form-data
형식을 이용해야 함화면 구성하기
이미지 #13 #14
상품 정보 입력 확인하기
제한사항
Image
: 최대 5장 각각 300KB 미만Title
: 글자수 0 이상Currency
: PickView KRW, JPY, USDPrice
: 0 이상의 정수DiscountPrice
: 0 이상의 정수 (옵셔널)Stock
: 0 이상의 정수충족되지 못하면 Alert을 띄워서 사용자에게 알림
상품 상세 설명 입력시 키보드 간섭
키보드가 만약
TextView
의 커서를 가리게 된다면, textview.contentInset 을 (키보드의 크기 - 뷰의 safeArea.bottom) 크기 계산을 하여 커서를 키보드 위에 위치시킨다.상품 등록 후 처리
상품 등록이 정상적으로 동작한다면
등록 완료
Alert을 통해 사용자에게 성공을 알리고, 메인 페이지로 이동 후 등록된 상품을 상세 페이지를 통해 보여준다Unit Test 수행