Skip to content

Conversation

@giljihun
Copy link
Member

🎯 PR 내용

Summary

  • 퀵필터 (무료, 마이) 기능 구현
  • CategoryTabBar UI/UX 개선
  • 만들기 메뉴 위치 고정 이슈 해결

1. 퀵필터 구현 (라디오버튼 스타일)

  enum QuickFilter: CaseIterable {
      case free   // 무료
      case owned  // 마이 (보유 아이템)

      var title: String { ... }
      var icon: ImageResource? { ... }
  }
  • 무료 / 마이 필터 중 하나만 선택 가능
  • 키링, 뭉치 탭 모두에서 동작

2. 만들기 메뉴 위치 고정

  // Before: 버튼 기준 상대 위치 → 스크롤 시 메뉴가 안 보임
  // After: SafeArea 기준 고정 위치
  .position(
      x: geometry.size.width - menuWidth / 2 - 16,
      y: geometry.safeAreaInsets.top + menuHeight / 2 - 5
  )

3. CategoryTabBar 개선

  • .contentShape(Rectangle()) 추가로 터치 영역 확대
  • 언더바 크기가 텍스트 길이에 맞춰지도록 수정

4. 파일 구조

  Workshop/Views/
  ├── Keyring/
  │   └── WorkshopKeyringGridView.swift  ← 키링 탭 전용
  ├── Bundle/
  │   └── WorkshopBundleGridView.swift   ← 뭉치 탭 전용
  └── Components/
      └── WorkshopFilterBar.swift

5. 참고: tabBarMinimizeBehavior 미동작 이슈

.tabBarMinimizeBehavior(.onScrollDown)Workshop에서 동작하지 않음.

원인:

// Collection (동작함) - 수직 배치, 겹치지 않음
  ┌─────────────────────────────┐
  │  headerSection (고정)        │
  ├─────────────────────────────┤
  │  tagSection (고정)           │
  ├─────────────────────────────┤
  │                             │
  │  ┌───────────────────────┐  │
  │  │   ScrollView          │  │  ← 독립 영역
  │  │   LazyVGrid           │  │
  │  └───────────────────────┘  │
  │                             │
  └─────────────────────────────┘

  // Workshop (미동작) - 오버레이가 ScrollView 위에 겹침
  ┌─────────────────────────────┐
  │░░░░░ topGradientOverlay ░░░░│  ← 겹침
  │  ┌───────────────────────┐  │
  │  │ stickyHeaderSection   │  │  ← 겹침
  │  │ ┌─────────────────┐   │  │
  │  │ │ topTitleBar     │   │  │  ← 겹침
  │  │ │ ┌─────────────┐ │   │  │
  │  │ │ │ ScrollView  │ │   │  │  ← 맨 아래 (가려짐)
  │  │ │ └─────────────┘ │   │  │
  │  │ └─────────────────┘   │  │
  │  └───────────────────────┘  │
  └─────────────────────────────┘
  // Collection: 헤더가 ScrollView와 나란히 (VStack)
  VStack {
      headerSection      // 고정
      ScrollView { ... } // 여기만 스크롤
  }
  // Workshop: 오버레이가 ScrollView 위에 겹침 (ZStack)
  ZStack {
      ScrollView { ... }   // 전체 화면
      stickyHeaderSection  // 위에 겹침
  }

스티키 헤더 등 복잡한 구조로 인해 적용 불가.

📱 스크린샷 (UI 변경 시)

ScreenRecording_01-25-2026.20-52-37_1.MP4

임시로 몇가지 아이템을 유료로 전환하였음.

거의 다 왔다. 다른 사람 코드를 리팩하는건 역시나 정말 쉽지 않네..

🔗 관련 이슈

✅ 체크리스트

  • 빌드 성공
  • 테스트 완료
  • Self-review 완료

- workshopToggle 프로퍼티 여기로 이전
- 키링카테고리, 번들 카테고리 분류
- fetchDataForCategory 카테고리 -> 데이터타입으로 변경
- WorkshopBundle/KeyringGridView.swift
- 기존엔 텍스트 영역 -> 정확히 카테고리 갯수에 나눠서 맞춰지는 영역 크기
- 주요: 최신순 정렬버튼 바텀과 떨어진 거리
- 케이스를 정의해서, 다른 버튼이 생기거나 수정 소요가 있어도 쉽습니다.
@giljihun giljihun self-assigned this Jan 25, 2026
@giljihun giljihun linked an issue Jan 25, 2026 that may be closed by this pull request
@freshfresh22
Copy link
Member

싱싱이의

c8bc571653d9a95b7cf61f1141b62bf9

@freshfresh22
Copy link
Member

    /\_/\ 
   ( >ᴗ< )👍
   /      \👍
  |        |👍
  |  따봉  |
   \______/
      ||

@freshfresh22
Copy link
Member

타이틀 [키링/뭉치]에서
Gray100 -> Gray 200 으로 바뀜
(뭉치 배경 적용하니까 잘 안보여서)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Feature: [키링/뭉치] 탭 분류 - 3

3 participants