相关疑难解决方法(0)

UIViewRepresentable 本身的大小如何与其内部的 UIKit 控件相关?

我完全感到困惑,无法找到有关如何包装 UIKit 组件并正确调整其大小的文档。这是最简单的示例,包装 UILabel:

public struct SwiftUIText: UIViewRepresentable {
    @Binding public var text: String

    public init(text: Binding<String>) {
        self._text = text
    }

    public func makeUIView(context: Context) -> UILabel {
        UILabel(frame: .zero)
    }

    public func updateUIView(_ textField: UILabel, context: Context) {
        textField.text = text
        textField.textColor = .white
        textField.backgroundColor = .black
    }
}
Run Code Online (Sandbox Code Playgroud)

没什么特别的,只是一个现在可以用于 SwiftUI 的 UILabel。我将其包含在视图中:

    var body: some View {
        VStack {
            Text("Hello, World!!! \(text)")
                .font(.caption1Emphasized)

            SwiftUIText(text: $helperText)
        }
        .background(Color.green)
    }
Run Code Online (Sandbox Code Playgroud)

结果就是这个画面。请注意,顶部的 Text 只占用了所需的大小,但 SwiftUIText 占用了所有垂直空间。在代码的其他迭代中,我看到它缩小了并且不只占用少量的水平空间。

有人可以解释一下我如何指定我的组件应该 (A) 用完所有可用的宽度和 (B) …

ios swift swiftui

8
推荐指数
1
解决办法
2494
查看次数

标签 统计

ios ×1

swift ×1

swiftui ×1