Section 13 : ScrollView and Repeat

- 滚动和重复视图(11’52")

Add a horizontal ScrollView to a list of cards in SwiftUI.

在 SwiftUI 中添加水平滚动视图和卡片的列表(list)。

1. 设计 SectionView

在 Home.swift 中设计并抽取子视图 SectionView

struct SectionView: View {
    var body: some View {
        VStack {
            HStack(alignment: .top) {
                Text("SwiftUI \n原型设计")
                    .font(.system(size: 24, weight: .bold))
                    .frame(width: 160, alignment: .leading)
                    .foregroundColor(.white)
                
                Spacer()
                
                Image("Logo1")
            }
            
            Text("共 18 讲")
                .frame(maxWidth: .infinity, alignment: .leading)
            
            Image("Card1")
                .resizable()
                .aspectRatio(contentMode: .fit)
                .frame(width: 210)
        }
        .padding(.top, 20)
        .padding(.horizontal, 20)
        .frame(width: 275, height: 275)
        .background(Color("card1"))
        .cornerRadius(30)
        .shadow(color: Color("card1").opacity(0.3), radius: 20, x: 0, y: 20)
    }
}

2. 重复视图

按住⌘ 点击主视图中的 SectionView,在快捷菜单中选择 Repeat,Xcode 自动加上了循环语句,默认是 5 次。再将循环用HStack包裹起来。再将 HStack 用 VStack 包裹起来,然后把 VStack 改成 ScrollView。这样做的好处一是方便,二是不用担心括号的闭合问题。最后加上适当的修饰。

// 如果是垂直滚动,要把 horizontal 改成 vertical,HStack 改成 VStack
ScrollView(.horizontal, showsIndicators: false) {   // 水平滚动,不显示滚动条
    HStack(spacing: 30) {                           // 水平放置
        ForEach(0 ..< 5) { item in                  // 重复 5 次
			SectionView()                           // 子视图
        }
	}
	.padding(30)
	.padding(.bottom, 30)
}

本节小结

本节代码请参见 GitHub码云

  • ScrollView 用来包裹滚动视图,注意方向的设定要一致
  • 用快捷菜单可以设置视图重复
  • 再次练习了组件的设计、修饰、抽取等内容
接下来

使用数组创建组件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值