Files
swift-study/demo/Views/User/UserView.swift
2024-01-23 18:00:59 +08:00

184 lines
5.2 KiB
Swift
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// UserView.swift
// demo
//
// Created by Jason on 2024/1/23.
//
import SwiftUI
struct UserView: View {
var body: some View {
ScrollView {
Header
ToVip
VStack(spacing: 16) {
InfoList
Notice
OrderShow
Coupons
tj
}
.padding(16)
.background(LinearGradient(colors: [Color.orange, Color.gray], startPoint: .top, endPoint: UnitPoint(x: 0, y: 0.5)))
.cornerRadius(12)
.offset(y: -76)
}
}
var Header: some View {
HStack {
Image("Images/logo")
.resizable()
.frame(width: 64, height: 64)
.cornerRadius(32)
.overlay(
RoundedRectangle(cornerRadius: 32, style: .continuous)
.stroke(Color.red, lineWidth: 2)
)
VStack(alignment: .leading, spacing: 12, content: {
Text("用户名称")
.font(.title2)
.fontWeight(.regular)
Text("我的用户简介,超出部分需要隐藏,隐藏需要自动设置,这个文字长度也要有约束")
.font(.caption)
.foregroundColor(Color.gray)
.lineLimit(1)
})
Image(systemName: "gearshape")
.foregroundColor(Color.gray)
}
.padding(.horizontal, 16)
}
var ToVip: some View {
HStack(spacing: /*@START_MENU_TOKEN@*/nil/*@END_MENU_TOKEN@*/, content: {
Spacer()
Button("立即开通") {}
.foregroundColor(Color.red)
.font(.subheadline)
.padding(.vertical, 8)
.padding(.horizontal, 16)
.background(Color.gray)
.cornerRadius(32)
})
.padding(16)
.padding(.bottom, 64)
.frame(maxWidth: .infinity)
.background(
Image("Images/banner3").resizable(resizingMode: .tile)
// .overlay(
// UnevenRoundedRectangle(cornerRadii: RectangleCornerRadii(topLeading: 12, topTrailing: 12))
// )
)
.cornerRadius(12)
.padding(.horizontal, 16)
}
var InfoList: some View {
ScrollView(.horizontal) {
HStack(spacing: 16) {
ForEach(/*@START_MENU_TOKEN@*/0 ..< 5/*@END_MENU_TOKEN@*/) { _ in
VStack {
HStack {
Image(systemName: "star")
Text("我的积分")
}
Text("共8888分")
.font(.caption)
}
.padding(12)
.background(Color.white)
.cornerRadius(8)
}
}
}
}
var Notice: some View {
HStack {
Text("资讯")
.padding(4)
.background(Color.red)
.foregroundColor(Color.white)
Text("平台与2024年1余额开始更新敬请期待@@@")
.foregroundColor(Color.gray)
.frame(maxWidth: .infinity)
.multilineTextAlignment(/*@START_MENU_TOKEN@*/ .leading/*@END_MENU_TOKEN@*/)
.lineLimit(1)
Text("更多")
.foregroundColor(Color.secondary)
}
.frame(maxWidth: .infinity)
.padding(8)
.background(Color.white)
.cornerRadius(8)
}
var OrderShow: some View {
VStack(spacing: 16) {
HStack {
Text("订单中心")
Spacer()
ShowMore()
}
.padding(8)
HStack {
Spacer()
ForEach(/*@START_MENU_TOKEN@*/0 ..< 5/*@END_MENU_TOKEN@*/) { _ in
VStack {
Image(systemName: "wallet.pass")
Text("待付款")
.font(.system(size: 12))
}
Spacer()
}
}
}
.background(Color.white)
.cornerRadius(6)
}
var Coupons: some View {
VStack(spacing: 16) {
HStack {
Spacer()
ForEach(/*@START_MENU_TOKEN@*/0 ..< 5/*@END_MENU_TOKEN@*/) { _ in
VStack {
Image(systemName: "wallet.pass")
Text("优惠券")
.font(.system(size: 12))
}
Spacer()
}
}
}
.padding(12)
.background(Color.white)
.cornerRadius(6)
}
let columns = [GridItem(.flexible()), GridItem(.flexible())]
var tj: some View {
LazyVGrid(columns: columns, alignment: .center) {
Section {
ForEach(0 ..< 20, id: \.self) { _ in
GoodsCard()
}
}
header: {
Text("推荐广场")
}
}
}
}
//
// #Preview {
// UserView()
// }