如何在溢出屏幕的 SwiftUI 中制作无限宽度的视图?
Posted
技术标签:
【中文标题】如何在溢出屏幕的 SwiftUI 中制作无限宽度的视图?【英文标题】:How to make a unlimited width view in SwiftUI that overflow the screen? 【发布时间】:2021-06-06 10:49:34 【问题描述】:我将ForEach
放入HStack
中。我希望ForEach
中的每个元素都保持其原始宽度,并且父HStack
应该根据需要溢出屏幕。但是,这会导致父 HStack
适合屏幕的宽度,并且 ForEach
内的每个元素都会缩小为 1/n * screenWidth
。
示例代码:
HStack(alignment: .bottom)
ForEach(data, id: \.id) element in
SomeView(data: element)
我可以通过将父 HStack
放在 ScrollView
中来实现类似的效果。但是如果我不想要滚动行为怎么办?我想知道ScrollView
是如何实现这个无限宽的?
【问题讨论】:
如果你不想要滚动行为,你想要什么?只是要裁剪的最后一个可见视图?你的问题不清楚。 【参考方案1】:无论你想达到什么目的,这样做都会破坏用户界面。
以图像为例,将其放入 VStack 中,不要使其可调整大小。它会溢出视图。您放置在该 VStack 中的任何内容也会溢出,并且不会在屏幕边界内对齐。
因此,最好的办法是使用 ScrollView 并禁用滚动,如下所述:How to only disable scroll in ScrollView but not content view?
【讨论】:
虽然该链接可能会回答您应该在答案部分发布相关代码的问题。链接随着时间的推移而中断,导致答案过时。以上是关于如何在溢出屏幕的 SwiftUI 中制作无限宽度的视图?的主要内容,如果未能解决你的问题,请参考以下文章
SwiftUI当总内容宽度小于屏幕宽度时,如何在动态水平滚动视图中居中内容