如何在滚动视图中设置组件的全高?

Posted

技术标签:

【中文标题】如何在滚动视图中设置组件的全高?【英文标题】:How do i set full height on a component in a scroll view? 【发布时间】:2020-11-06 22:32:31 【问题描述】:

我是一名尝试学习 SwiftUI 的网络开发人员,并且对我的问题有一些疑问。

所以我的代码架构如下:

ContentView.swift

ScrollView(.vertical)
      Foreach(users)
   user in UserCard()
  

UserCard.swift

VStack()
 Image()
 Text("long text")

如何使我的 UserCard 始终与我的 iphone 高度一致?截至目前,我的 UserCard 有时会溢出或过快切断,具体取决于我的文本长度。

任何帮助将不胜感激。给 SwiftUI 初学者的任何提示都会很棒!

谢谢你。

【问题讨论】:

能否添加您要修复的问题布局的屏幕截图? 【参考方案1】:

如果您希望它是全屏并忽略安全区域,您可以将UserCard 的高度设置为屏幕高度,如下所示:

VStack()
   Image()
   Text("long text")

.frame(height: UIScreen.main.bounds.height)

如果您希望它尊重安全区域,您可以使用GeometryReader

GeometryReader  geometry in
    ScrollView 
        Color.red
            .frame(height: geometry.size.height)
        Color.blue
            .frame(height: geometry.size.height)
        Color.yellow
            .frame(height: geometry.size.height)
    

【讨论】:

【参考方案2】:
one Question -> one Answer

对于您问题的第二部分,需要有自己主题的新问题。

    ZStack()
    

        VStack()
        
            Image(systemName: "star")
            Text("long text")
        
        
    
    .ignoresSafeArea()

【讨论】:

以上是关于如何在滚动视图中设置组件的全高?的主要内容,如果未能解决你的问题,请参考以下文章

如何根据底部的 webview 设置 Viewcontroller 动态高度?

带有分页的水平滚动视图中的全宽标签

带有 Angular Material 动态高度标签的可滚动内容元素

在delphi的滚动框中滚动时如何查看组件是不是不在视图中?

ConstraintLayout Slide Transition 动画在动画结束前显示视图的全高

将 iFrame 设置为固定页脚和页眉之间的全高