【问题标题】:How to change UITextField size inside UIViewRepresentable in SwiftUI如何在 SwiftUI 中更改 UIViewRepresentable 内的 UITextField 大小
【发布时间】:2021-04-21 07:20:47
【问题描述】:

我想做一个简单的自定义 UITextField,但我不知道如何设置它的高度。

问题是 UITextField 扩展为填充父级,我意识到我可以在 UINumberTextView 上设置 .frame() 修饰符,但这不是一个好的解决方案,因为您不需要在 SwiftUI TextField 上这样做.我对此感到非常沮丧,因为我在任何地方都没有找到答案,而且这是一个如此简单的问题。

这是我的代码 - 设置 textfield.frame 没有任何效果。

struct UINumberTextView: UIViewRepresentable {

    @Binding var text: String

    func makeUIView(context: Context) -> UITextField {
        let textfield = UITextField()
        textfield.keyboardType = .numberPad
        textfield.frame = CGRect(origin: .zero, size: CGSize(width: .max, height: 44))
    
        return textfield
    }

    func updateUIView(_ uiView: UITextField, context: Context) {
        uiView.text = text
    }
}

这是预览的样子

【问题讨论】:

    标签: ios swift swiftui uikit swift4


    【解决方案1】:

    你必须改变抗压优先级

    textField.setContentCompressionResistancePriority(.defaultLow, for: .horizontal)
    

    【讨论】:

      猜你喜欢
      • 2019-12-05
      • 1970-01-01
      • 2020-02-14
      • 1970-01-01
      • 1970-01-01
      • 2023-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多