我们如何使分隔线高度等于 SWIFT UI 小部件中水平堆栈的另一个子级

Posted

技术标签:

【中文标题】我们如何使分隔线高度等于 SWIFT UI 小部件中水平堆栈的另一个子级【英文标题】:How we can have divider height equal to another child of horizontal stack in SWIFT UI widgets 【发布时间】:2020-09-26 21:12:45 【问题描述】:

与附加屏幕一样,分隔线需要与 Labe 具有相同的高度; '一键式和价格'。这里 One Touch 和价格标签是一个垂直堆栈,这是分隔线的水平堆栈。

【问题讨论】:

到目前为止你尝试过什么代码? Divider() .background(Color(#colorLiteral(red: 1, green: 0.4352941176, blue: 0.3803921569, alpha: 1))) .padding(.leading, 16.0) .frame(minWidth: 4、idealWidth:4、maxWidth:4、minHeight:40、idealHeight:40、maxHeight:.infinity、对齐方式:.center) 【参考方案1】:

这是可能的方法 - 使用与父视图提供相同高度的叠加层。

使用 Xcode 12 / ios 14 测试

var body: some View 
    HStack 
        VStack(alignment: .leading) 
            Text("Some long label text having word wrapping").font(.headline)
            Text("Some short")
        .padding(.leading)
    
    .overlay(
        Rectangle().fill(Color.red).frame(width: 4), // << your divider here !!
        alignment: .leading
    )
    .frame(width: 300) // just for wrap demo

【讨论】:

以上是关于我们如何使分隔线高度等于 SWIFT UI 小部件中水平堆栈的另一个子级的主要内容,如果未能解决你的问题,请参考以下文章

如何使两个小部件高度相同?

如何使用 wrap 小部件在下一行设置分隔符?

#yyds干货盘点#Flutter中如何添加垂直分隔线flutter专题35

如何更改我的 twitter 小部件以具有响应高度

如何使小部件的高度最多为 X 像素?

AppBar中的分隔线没有出现