如何防止Spacer使VStack贪婪地增长到不必要的程度?

2024-01-16

我大致有:

var body: some View
{
    HStack(alignment: .top) {

        AvatarView()

        MessageBubble()

        if message.isDeleted != true
        {
            VStack {
                Button(action: {
                    // ...
                }) {
                    Image(systemName: "chevron.down")
                }
                Spacer() // THIS SPACER
                Button(action: {
                    // ...
                }) {
                    Text("????")
                }
            }
        }
    }
}

HStack~'s height is dictated by the size消息气泡which is always taller than its头像视图andVStack`兄弟姐妹。

问题是当我添加一个Spacer在 - 的里面VStack,那么整个HStack令人难以置信的增长。这Spacer就是“贪婪”地让万物无限生长。 我确实希望在顶部有一个按钮,在底部有另一个按钮VStack同时被限制于MessageBubble的身高。

我怎样才能让它增长不超过MessageBubble?


如果我理解正确的话你期望这样的东西(元素对齐)

这是演示代码(彩色矩形的框架在这​​里并不重要,尺寸仅用于演示,您将在那里放置视图):

struct TestAlignmentSize: View {
    @State var height: CGFloat = 40
    var body: some View {
        HStack(alignment: .top, spacing: 20) {
            Rectangle()
                .fill(Color.blue)
                .frame(width: 50, height: 50)
            Rectangle()
                .fill(Color.red)
                .frame(width: 100, height: 200)
                .alignmentGuide(.top, computeValue: { d in // [!!] 
                    self.height = d.height
                    return d[.top]
                })
            VStack {
                Button(action: {}) {
                    Image(systemName: "chevron.down")
                }
                Spacer()
                Button(action: {}) {
                    Text("Button")
                }
            }.frame(height: self.height) // [!!]
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何防止Spacer使VStack贪婪地增长到不必要的程度? 的相关文章

随机推荐

  • devDependency 会影响包大小吗?

    我仔细寻找 找不到这个问题的直接答案 执行我添加的软件包devDependencies实际上最终会出现在生产包 JS 文件中并从而影响其大小 或者只是dependencies进入捆绑包 不 它不会影响您的包大小 因为这些包仅在开发模式下使用
  • ActiveRecord 嵌套 SELECT

    我需要有关 SELECT FROM 嵌套 SELECT 的帮助 如何以 ActiveRecord 方式重写以下查询并获取 Relation 对象 SELECT candidates FROM SELECT candidates first
  • stringr、str_extract:如何进行正向后查找?

    很简单的问题 我只需要使用正则表达式正向查找捕获一些字符串 但我没有找到一种方法来做到这一点 这是一个例子 假设我有一些字符串 library stringr myStrings lt c MFG acme something else M
  • 具有重叠间隔时间序列的 groupby

    我在 python pandas dataframe 对象中有一个时间序列 我想根据索引创建一个组 但我想要重叠的组 即组不不同 header sec 是索引列 每组包含一个 2 秒的窗口 输入数据帧 header sec 1 17004
  • 如何在处理中计算从 mouseX、mouseY 到矩形的距离()

    如果它是一个点的距离 那就是 dist mouseX mouseY x y for point x y 但我如何计算从鼠标当前位置到 rectMode CORNERS rect x1 y2 x2 y2 Thanks 像这样的事情应该这样做
  • 如何调整滚动复合材料的大小以使其始终水平适合其内容?

    我有一个滚动复合材料 它包含一个 tableViewer 我的要求是 如果表格宽度增加 滚动组合不应显示水平滚动 但应扩展以适合表格的大小 我在这里使用滚动复合的唯一原因是我想显示垂直滚动条 如果你想控制滚动条Table在 SWT 中 它是
  • 将动画 Maya 模型转换为 JSON 以与三个 js 一起使用

    我有一个在 Maya 2008 中完成的 Maya 模型 我需要能够将其转换为 JSON 格式以便与三个 js 一起使用 到目前为止 我已经尝试过 1 ThreeJsFileTranslator py 它是一个用于导出模型的 Maya 插件
  • 如何在telnet客户端上实现命令历史记录? (向上/向下箭头)

    我有一台接受 telnet 连接进行管理的服务器 我错过了命令历史记录 因此我想让我的 telnet 会话支持它 我的问题 1 我是否必须在服务器端实现这一点 以便服务器将过去的命令发送到客户端 然后客户端可以重新执行 2 是否有办法在te
  • PHP < 5.2 的 spl_object_hash (对象实例的唯一 ID)

    我正在尝试获取 PHP 5 中对象实例的唯一 ID 功能 spl object hash http php net manual en function spl object hash php从 PHP 5 2 开始可用 但我想知道是否有针
  • 为什么 Coffeescript 认为影子是一个坏主意

    我想切换到 Coffeescript 一段时间了 昨天我以为我终于被卖了 但后来我偶然发现阿明 罗纳彻文章 http lucumr pocoo org 2011 12 22 implicit scoping in coffeescript
  • 为什么我无法在 jquery 1.4.4 之后设置背景位置动画?

    I see here https stackoverflow com questions 5075368 jquery and animate backgroundposition no longer works in version 1
  • Tensorflow安装OS X

    我正在尝试在 El 10 11 1 上安装 TensorFlow 但在创建和安装 pip 包时遇到问题 我根本不理解 我成功安装了 Bazel SWIG 和 NumPy按照说明 http tensorflow org get started
  • 从格子直方图中提取值

    我使用创建了一个等面积直方图histogram 然而 在格子中 我似乎找不到一种方法来提取 20 个大小相等的箱中的值 有什么建议么 我也研究过使用 ggplot2 但我无法创建相同面积大小的数据箱 同时具有使用提取数据的能力ggplot
  • MySQL的index_length是以字节为单位的吗?

    MySQL文档将index length定义为 索引文件的长度 但没有指定单位 是字节吗 http dev mysql com doc refman 5 1 en show table status html http dev mysql
  • 如何在 MATLAB 的 mex c++ 函数中循环遍历矩阵元素?

    我正在尝试使用 mex 来索引为 MATLAB 编写外部 C 函数来操作矩阵 但无法使用多维索引 有提供例子here http www mathworks co uk help matlab matlab external table of
  • Twitter OAUTH - 返回响应代码“0”

    我尝试使用 Matt Harris 的 Twitter OAUTH 库 https github com themattharris tmhOAuth 用我的密钥和令牌替换默认数据 但由于某种原因我无法获得有效的响应代码 我正在测试的网址以
  • 检测其他应用程序何时尝试使用相机

    我们的应用程序作为后台服务运行 不断从前置摄像头获取图像 然后对图像进行处理 然而 当用户尝试打开另一个使用相机的应用程序时 会发生两种情况 要么新应用程序崩溃而我们的应用程序继续运行 要么我们崩溃而新应用程序可以访问相机 现在 如果我们的
  • 如何使用Slim框架获取POST请求实体

    我已经发送了JSON使用 android java 的数据 通过在 post 实体中设置它 如下所示 HttpPost httpPostRequest new HttpPost URLs AddRecipe StringEntity se
  • Android Activity Intent 关闭后仍然存在

    SETUP一个 Activity SingleTop 从通知接收意图 意图被活动所消耗 用户点击后退按钮结束活动 onDestory 被调用并且 isFinishing 返回 true 长按 Home 键即可调出最近使用的应用程序 启动之前
  • 如何防止Spacer使VStack贪婪地增长到不必要的程度?

    我大致有 var body some View HStack alignment top AvatarView MessageBubble if message isDeleted true VStack Button action Ima