gpt4 book ai didi

ios - 阻止 UITextField 水平扩展

转载 作者:可可西里 更新时间:2023-11-01 05:01:27 26 4
gpt4 key购买 nike

我在按钮旁边的 View 中放置了一个 UITextField。它对按钮有一个 8 的尾随约束(它对 super View 有一个 8 的尾随约束),当我在其中键入长文本时,它只是滚动,这是我想要的。但是,为了在 View 切换到另一个 View (位于选项卡 Controller 中)时保留字段中键入的文本,我将文本保存在 holder 变量中,当它切换回该 View 时,我将文本设置为保存文本的字段。

问题是,如果文本足够长,这会导致字段水平扩展,有时会将按钮推到屏幕外,即使尾随 8 约束也是如此。我试图将字段的原始框架保存在 holder 变量中,然后在设置文本后,将框架设置为保存的原始框架,如下所示:

fieldFrame = messageField.frame
println(messageField.frame.width)
messageField.text = holderMessage
println(messageField.frame.width)
messageField.frame = fieldFrame

不过,字段还是扩大了,打印了两次502.0。我目前的想法是框架没有及时为 println 设置文本后记录宽度的变化,但我不确定这是否正确。

另外,我读过一些建议使用宽度约束的类似问题。如果我在 field 上使用小于或等于宽度的约束,如果在更薄的设备上,它还会扩展吗?也就是说,由于我目前使用的是任意宽度和任意高度的 Storyboard ,它比 iPhone 6 更宽。因此,如果我对字段的当前宽度设置小于或等于宽度约束,它该领域似乎有可能仍然可以在更小的设备上扩展并且不会打破该限制。

有没有更好的方法来做这样的宽度限制?如果不是,我还能如何防止字段扩展并将按钮推到屏幕外?

最佳答案

问题来了。文本字段倾向于根据其内容水平调整自身大小。该按钮倾向于根据它的内容水平调整自身的大小。因此你有一个歧义:这些趋势具有相同的优先级,所以运行时不知道在文本字段的文本变得太长时折叠哪一个。

解决方案是调整这些优先级。您必须降低文本字段的水平压缩和拥抱优先级 - 降低一个点就足够了。现在按钮将更倾向于将其自身的大小与其内容相匹配,并且文本字段将裁剪其内容。

enter image description here

关于ios - 阻止 UITextField 水平扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32061500/

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