如何在 SwiftUI 中更改 UIViewRepresentable 内的 UITextField 大小
Posted
技术标签:
【中文标题】如何在 SwiftUI 中更改 UIViewRepresentable 内的 UITextField 大小【英文标题】:How to change UITextField size inside UIViewRepresentable in SwiftUI 【发布时间】: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
这是预览的样子
【问题讨论】:
【参考方案1】:你必须改变抗压优先级
textField.setContentCompressionResistancePriority(.defaultLow, for: .horizontal)
【讨论】:
以上是关于如何在 SwiftUI 中更改 UIViewRepresentable 内的 UITextField 大小的主要内容,如果未能解决你的问题,请参考以下文章
如何在 SwiftUI 中使用 UIButton 更改 @State var