带布局的自定义 HStack - 默认间距是多少?

问题描述 投票:0回答:1

我尝试使用

HStack
创建自定义
Layout
。如果用户不提供自定义间距,我希望有类似的语法,如
HStack
并使用相同的间距。但我找不到:
HStackLayout
的默认间距是多少?

我尝试提供一些代码或额外信息:

这是苹果的定义:

@frozen public struct HStackLayout : Layout {

    /// The vertical alignment of subviews.
    public var alignment: VerticalAlignment

    /// The distance between adjacent subviews.
    ///
    /// Set this value to `nil` to use default distances between subviews.
    public var spacing: CGFloat?
...

我想知道,如果您不提供自定义值,间距有什么用。

swiftui
1个回答
0
投票

HStack
的自动间距使用视图自己在其他视图之间的首选间距。您可以使用
LayoutSubview.spacing
属性访问它。

示例:

func placeSubviews(in bounds: CGRect, proposal: ProposedViewSize, subviews: Subviews, cache: inout ()) {
    // suppose you want to find the default horizontal spacing between these two views:
    let view1 = subviews[0]
    let view2 = subviews[1]

    let spacing = view1.spacing.distance(to: view2.spacing, along: .horizontal)
}

请注意,此间距有所不同,具体取决于两个视图的类型。每种视图都有自己相对于其他视图的首选间距。

© www.soinside.com 2019 - 2024. All rights reserved.