SwiftUI 목록 카드 보기
This playground is a simple example on how to recreate the same effect with SwiftUI 온라인에서 찾은 모든 예제는 the same design in a much more complex manner을 구현합니다.
우리는 Apple의 Dev Training "Creating a card view"을 영감과 출발점으로 삼을 것입니다.
데이터 모델
먼저 CardView용 데이터 모델을 생성해 보겠습니다. CardViews에 색상을 지정하기 위한 테마를 포함하는 간단한 모델입니다.
import Foundation
struct ColorCard: Identifiable {
let id = UUID()
var theme: Theme
}
카드 보기
CardView의 구조는 다음과 같습니다.
import SwiftUI
struct CardView: View {
let colorCard: ColorCard
var body: some View {
Text(colorCard.theme.name)
.foregroundColor(colorCard.theme.accentColor)
.font(.headline)
.padding(
EdgeInsets(
top: 25,
leading: 5,
bottom: 25,
trailing: 5
)
)
}
}
콘텐츠 보기
그리고 마지막으로 CardView 목록을 포함하는 ContentView입니다. 목록 항목 사이에 간격을 만들기 위해 목록 행 구분 기호
.listRowSeparator(.hidden)
를 제거하고 목록 행 배경을 상단 및 하단 EdgeInsets 패딩을 정의하는 InsettableShape.listRowBackground()
로 설정합니다. 마지막 터치는 .listStyle(.plain)
를 .plain
로 설정하는 것입니다.import SwiftUI
struct ContentView: View {
@State private var colorCards: [ColorCard] = ColorCard.sampleData
var body: some View {
List {
ForEach(colorCards) { colorCard in
NavigationLink(destination: colorCard.theme.mainColor) {
CardView(colorCard: colorCard)
}
.listRowSeparator(.hidden)
.listRowBackground(
RoundedRectangle(cornerRadius: 5)
.background(.clear)
.foregroundColor(colorCard.theme.mainColor)
.padding(
EdgeInsets(
top: 2,
leading: 10,
bottom: 2,
trailing: 10
)
)
)
}
.onDelete { idx in
colorCards.remove(atOffsets: idx)
}
}
.listStyle(.plain)
.navigationTitle("Color Cards")
.toolbar {
Button {
colorCards.append(ColorCard(theme: Theme.allCases.randomElement()!))
} label: {
Image(systemName: "plus")
}
}
}
}
전체 Playground 앱은 github 저장소SwiftUI List CardView Example에서 사용할 수 있습니다.
Reference
이 문제에 관하여(SwiftUI 목록 카드 보기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/kafran/swiftui-list-card-view-2da4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)