Section 16 : Modal Presentation

- 模态展示(7’02")

Navigate to another screen using a built-in Modal view.

使用内置的模态视图导航到另一个屏幕。

今天的内容非常少。模态显示我觉得就类似弹出框,浮在现有的窗口上面。

1. 为控制模态显示增加控制变量

@State var showUpdate = false

2. 添加显示模态框的按钮

打开 HomeView 文件,在 HStack中的 AvatarView 组件的后面添加按钮。

Button(action: {self.showUpdate.toggle()}) {
	Image(systemName: "bell")
        .renderingMode(.original)
        .font(.system(size: 16, weight: .medium))
        .frame(width: 36, height: 36)
        .background(Color.white)
        .clipShape(Circle())
        .shadow(color: Color.black.opacity(0.1), radius: 1, x: 0, y: 1)     // 小半径的边缘投影,突出边界
        .shadow(color: Color.black.opacity(0.2), radius: 10, x: 0, y: 10)   // 大半径的范围投影,悬浮效果
}
.sheet(isPresented: $showUpdate) {
    ContentView()
}

sheet 修饰用来呼出模态框,这里模态框的内容暂时使用了 ContentView。在点击按钮后,showUpdate 值切换,会显示模态框。可以看到,模态框有很多内置的动画,还可以响应原本视图的手势,比如显示卡片的内容,但由于手势上的设置与内置的手势有重复(如拖拽),这部分就展示的不理想了。

今天的另一个收获是使用半径不同的阴影让按钮的效果更好一些。

本节小结

本节代码请参见 GitHub码云

  • 模态框是一种常见的展示方式,一般需要通过一个控制变量配合。
  • 模态框有内置的手势、动画,无须过多设定。
  • sheet 修饰器可以用来调用模态框。
  • 使用双重阴影美化组件
接下来

导航视图

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值