gpt4 book ai didi

ios - UIStackView 自身的 intrinsicContentSize

转载 作者:IT王子 更新时间:2023-10-29 05:26:29 36 4
gpt4 key购买 nike

我正在使用具有以下配置的 UIStackView:

let contentView = UIStackView()
contentView.distribution = .EqualSpacing
contentView.alignment = .Center
contentView.spacing = horizontalSpacing

每个元素都有自己的 intrinsicContentSize,因此 UIStackView 应该可以提供自己的 intrinsicContentSize。文档指出 spacing 用作最小间距。

例子:

view1: width=10
view2: width=15
spacing = 5
[view1(10)]-5-[view2(15)]

stackView 的intrinsicContentSize.width 应该是30

相反,我得到:

▿ CGSize
- width : -1.0
- height : -1.0 { ... }

这告诉我无法提供 intrinsicContentSize

你们有没有人知道我是否做错了什么,行为是否是故意的,或者这是一个错误?

最佳答案

从 iOS 9.1 开始,UIStackView 没有实现 intrinsicContentSize:

import UIKit
import ObjectiveC

let stackViewMethod = class_getInstanceMethod(UIStackView.self, "intrinsicContentSize")
let viewMethod = class_getInstanceMethod(UIView.self, "intrinsicContentSize")
print(stackViewMethod == viewMethod)

输出:

true

如果你真的需要它,你可以创建一个 UIStackView 的子类并自己实现它。不过,您不需要这样做。如果 UIStackView 被允许(通过对其的约束)选择自己的大小,它会根据其排列的 subview 的固有内容大小(或通过您为其大小设置的其他约束)来选择自己的大小排列的 subview )。

关于ios - UIStackView 自身的 intrinsicContentSize,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33348755/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com