Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

클디서 task구현완료(유진) #42

Merged
merged 5 commits into from
May 26, 2023
Merged

Conversation

yujin-00
Copy link
Contributor

@yujin-00 yujin-00 commented May 25, 2023

✅OrderMainView 구현 결과

Simulator Screen Recording - iPhone 13 Pro Max - 2023-05-25 at 16 34 44

✅트러블슈팅

1. stackview 여백이 제각각인 문제

  • heart, share, together 이미지와 라벨, sectionLabel 2개 총 8개를 스택뷰에 넣는 과정에서 공백이 일정하지 않다는 문제 발생

✓ 해결방법

private let personalStack = UIStackView().then {
        $0.distribution = .equalSpacing
}

stackview의 distribution 속성 중 equalSpacing 적용
(fill, fillEqually, fillProportionally, equalSpacing, equalCentering 속성들에 대해 알게 됨)

✓ 결과

스크린샷 2023-05-26 오후 3 29 50

2. OrderMainView를 TableView의 header로 넣어주는 과정

  • OrderMainView(가게 정보 담긴 뷰)와 TableView(메뉴 상세 정보 담긴 뷰)를 따로 만든 후 VC에서 헤더뷰로 넣어주는 과정에서 잘 합쳐지지 않는 어려움 발생

✓ 해결방법

let headerView = OrderMainView(frame: CGRect(x: 0, y: 0, width: view.frame.size.width, height: 536))
OrderMainTableView.tableHeaderView = headerView

TableView를 세팅해주는 함수에서 headerView를 OrderMainView로 지정

✓ 결과

스크린샷 2023-05-26 오후 3 54 18

3. TableView의 섹션들끼리 불필요한 공백 발생 문제

  • 각 메뉴 카테고리 섹션끼리 떨어지는 문제가 발생하여 불필요한 공백이 나옴
    footer의 문제인줄 알고 다양한 속성을 적용해보았지만 해결되지 않음

✓ 해결방법

private let OrderMainTableView = UITableView(frame: .zero, style: .grouped)

TableView를 선언해줄때 style을 grouped로 지정해줌
(plain, grouped, inset grouped 속성에 대해 알게 됨)

✓ 결과

스크린샷 2023-05-26 오후 3 30 59

4. TableView sectionHeaderView에 글씨와 버튼 배치

  • 맨 처음에는 단지 mockdata를 뿌려주는 방식으로 sectionHeaderView를 지정해주었는데 화살표 버튼도 필요한 상황

✓ 해결방법

func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
        let sectionHeaderView = PopularMenuSectionHeaderView()
        sectionHeaderView.config(title: mockData.menuOrder[section].menuName)
        return sectionHeaderView
}

viewForHeaderInSection을 지정해주는 함수 안에서 PopularMenuSectionHeaderView를 tableView의 섹션헤더로 넣어줌
(PopularMenuSectionHeaderView를 만들어서 그 안에 라벨과 버튼을 넣어줌)

✓ 결과

스크린샷 2023-05-26 오후 4 37 46

5. 내가 만든 store 데이터구조를 api 모델의 데이터구조와 비교하여 매칭

  • api 개발 완료 전 클라이언트 작업이 먼저 시작되었기 때문에 필요한 데이터 구조를 임의로 생성해서 개발함
    내가 만든 데이터구조와 실제 api 모델의 데이터구조에 차이가 있었고 이를 변환해야 하는 상황

✓ 해결방법

func convertStoreDetail() -> [StoreDetail] {
    return [
        StoreDetail(storeName: data.name, storeStars: Float(data.rate), storeReviews: 176, minPrice: data.minOrderAmount, deliverTime: data.maxDeliveryTime, deliverTips: data.deliveryFee)
    ]
}

QuickType을 돌려서 나온 데이터구조 중에서 필요한 데이터를 뽑아와 내가 만든 데이터구조에 매칭해줌

Copy link
Contributor

@kimscastle kimscastle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

고생하셨어요 contentMode만 추가하고 머지합시다

@@ -39,6 +39,10 @@ final class OrderMainView: UIView {
$0.textColor = .designSystem(.black)
}

private let reviewarrowImage = UIImageView().then {
$0.image = .assetImage(.rightarrow)
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

imageView를 사용하는곳에는
contentMode속성을 추가해주세요~

Copy link
Contributor

@kimscastle kimscastle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

고생하셨어요 contentMode만 추가하고 머지합시다

@kimscastle kimscastle merged commit 1b2cce9 into develop May 26, 2023
@yujin-00 yujin-00 changed the title [Feat] #34 Section HeaderView 구현 클디서 task구현완료(유진) May 26, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants