小程序开发|小程序制作|小程序开发网

搜索

SwiftUI:如何控制safeAreaInset

2022-2-18 11:41| 发布者: 梅西| 查看: 216| 评论: 2

摘要: WWDC21已经结束,safeAreaInset()是一个全新的SwiftUI视图修饰符,它允许我们定义成为观察安全区的一部分的视图。让我们深入研究这个新的、强大的特性。滚动视图最常见的safeAreaInset用例可能是滚动视图。以下面的

WWDC21已经结束,safeAreaInset()是一个全新的SwiftUI视图修饰符,它允许我们定义成为观察安全区的一部分的视图。让我们深入研究这个新的、强大的特性。

滚动视图

最常见的safeAreaInset用例可能是滚动视图。以下面的屏幕为例,我们有一个带有一些内容的ScrollView和一个按钮:

struct ContentView: View {  var body: some View {    ScrollView {      ForEach(1..<30) { _ in        Text("Five Stars")          .font(.largeTitle)      }      .frame(maxWidth: .infinity)    }    .overlay(alignment: .bottom) {      Button {        ...      } label: {        Text("Continue")          .frame(maxWidth: .infinity)      }      .buttonStyle(.bordered)      .controlSize(.large)      .controlProminence(.increased)      .padding(.horizontal)    }  }}

注意:.buttonStyle(.bordered) .controlSize(.large) .controlProminence(.increased)是iOS15的视图修饰符

因为按钮只是一个覆盖,滚动视图不受它的影响,当我们滚动底部时,这就成为一个问题:

ScrollView中的最后一个元素被遮挡在按钮下面!
现在我们把.overlay(alignment: .bottom).safeAreaInset(edge: .bottom)交换:

struct ContentView: View {  var body: some View {    ScrollView {      ForEach(1..<30) { _ in        Text("Five Stars")          .font(.largeTitle)      }      .frame(maxWidth: .infinity)    }    .safeAreaInset(edge: .bottom) { // 
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

鲜花

握手

雷人

路过

鸡蛋
发表评论

最新评论

引用 李白笑了 2022-9-15 11:43
向前辈学习!
引用 梅西 2022-5-25 21:53
The SwiftUI story/relation of this libraryhttps://www.editcode.net/article-248920-1.html

查看全部评论(2)

返回顶部