import SwiftUI/// 커스텀 세그먼트 뷰 (컨텐츠 크기만큼 동적 너비 버전)struct SegmentedFlexibleView: View { let segments: [String] @Binding var currentPage: Int @Namespace private var name var body: some View { ScrollViewReader { proxy in ScrollView(.horizontal, showsIndicators: false) { HStack(spacing: 0) { ForEach(segments.indices, id: \.self) {..
import SwiftUI/// 커스텀 세그먼트 뷰 (가로 꽉 채우는 고정 너비 버전)struct SegmentedFixedView: View { let segments: [String] @Binding var currentPage: Int @Namespace private var name var body: some View { HStack(spacing: 0) { ForEach(segments.indices, id: \.self) { index in Button { currentPage = index } label: { ..
// https://ahmetkasimnazli.medium.com/creating-an-audio-player-with-avkit-in-swiftui-a17f3b704fad// 오디오 플레이어struct ContentView: View { @State var viewModel = ViewModel() var body: some View { VStack { HStack { Button { if viewModel.isPlaying { viewModel.pause() } else { ..
- Total
- Today
- Yesterday
- 프로그레스
- TabView
- localizing
- custom segment
- Reject
- Xcode
- indicator
- Authorization
- 로컬라이징
- picker
- swiftUI
- SKPayment
- 다국어
- 엑스코드
- Language
- 심사
- 아이오에스
- ios
- TabBar
- Infinite Carousel
- 리젝
- 테이블뷰
- 스위프트
- AppStore
- presentationcompactadaptation
- 현지화
- 인디케이터
- SWIFT
- localizable
- permission
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |