我的应用程序中有一个共享视图,可以在不同的地方调用。这个视图的根是一个滚动视图,但有时它会忽略顶部的安全区域,并折叠在导航栏下。这里有两个屏幕截图,显示更好的问题:
正如你在第二个屏幕截图中看到的,滚动视图扩展到了导航下折叠的所有屏幕。我该如何避免这种情况?
o2g1uqev1#
将.padding(.top, 1)添加到滚动视图将解决此问题。
.padding(.top, 1)
ubof19bj2#
我在NavigationView中的List也有类似的问题,忽略了底部的安全区域。帮助我的是将列表底部填充设置为一些非零值,如下所示:
.padding(.bottom, 1)
这看起来像是一个bug,这个问题在iOS15.2上仍然存在
mrphzbgm3#
Ihor Vovk's solution works perfectly,但如果你不想要一个可见的填充,只需将其更改为.padding(.top, 0.1)。(我测试了,0.1是使其工作的最小可能值)
.padding(.top, 0.1)
6tr1vspr4#
使用以下方法求解:
.navigationViewStyle(StackNavigationViewStyle())
在所有NavigationView中
62o28rlo5#
你可以通过给滚动视图填充来解决它
ScrollView { VStack(spacing: 0) { Text("test") Text("test") Text("test") Text("test") Text("test") } } .padding(.top, UIApplication.shared.windows.first!.safeAreaInsets.top )
wswtfjt76#
用一个更简单的方式来思考,你会很惊讶请使用修饰符.clipped()->问题是滚动视图正在允许它的内容溢出,就像UIkit中的masksToBounds属性一样,上面的padding(.top,1)解决方案也是防止内容溢出的一种方法。
6条答案
按热度按时间o2g1uqev1#
将
.padding(.top, 1)
添加到滚动视图将解决此问题。ubof19bj2#
我在NavigationView中的List也有类似的问题,忽略了底部的安全区域。帮助我的是将列表底部填充设置为一些非零值,如下所示:
这看起来像是一个bug,这个问题在iOS15.2上仍然存在
mrphzbgm3#
Ihor Vovk's solution works perfectly,但如果你不想要一个可见的填充,只需将其更改为
.padding(.top, 0.1)
。(我测试了,0.1是使其工作的最小可能值)6tr1vspr4#
使用以下方法求解:
在所有NavigationView中
62o28rlo5#
你可以通过给滚动视图填充来解决它
wswtfjt76#
用一个更简单的方式来思考,你会很惊讶请使用修饰符.clipped()->问题是滚动视图正在允许它的内容溢出,就像UIkit中的masksToBounds属性一样,上面的padding(.top,1)解决方案也是防止内容溢出的一种方法。