在 UITextfield 上设置 maxwidth

Set maxwidth on UITextfield

提问人:Michael Okoli 提问时间:9/2/2023 更新时间:9/5/2023 访问量:36

问:

我有一个 Uitextfield,当设备宽度小于 580 时,我希望前导和尾随距离安全区域或上视图 23 的宽度,使其与设备屏幕一样宽,但从两边增长 23。但是在宽度大于 580 的设备上,我不希望 uitextfield 宽度增长到 580 以上。我希望最大宽度为 580,并将其居中。

我尝试将前导和尾随设置为 23,并将宽度设置为 <= 580,但它不适用于设备宽度大于 580 的 iPad,相反,它会变得非常宽,忽略 width<= 580 约束。如何在界面构建器中实现这一点

iOS Xcode AutoLayout 界面生成器

评论

0赞 lazarevzubov 9/2/2023
实现的想法听起来是正确的。请向我们展示布局代码。

答:

0赞 HangarRash 9/3/2023 #1

您需要对文本字段进行 4 个水平约束才能满足您的要求:

  1. 设置约束以使文本字段在其父视图中居中。
  2. 将文本字段的前导约束设置为 23,但将关系从 = 更改为 >=。
  3. 将文本字段的尾随约束设置为 23,但将关系从 = 更改为 >=。
  4. 将文本字段的宽度设置为 580,但将优先级从 1000 降低到 750。

在窄屏幕上,前导和尾随约束优先于宽度。这确保了边距为 23,宽度填充了剩余的内容。

在较宽的屏幕上,文本字段宽度不超过 580,边距的 >= 设置允许边距大于 23。居中约束可确保文本字段保持居中。

0赞 gothham 9/5/2023 #2

如果您使用的是界面构建器(Storyboard),请使用 size 类来满足您的需求。

如果设备宽度为 wC & hR 和 wC & hC,则将 textField(前导和尾随)固定到边缘,否则将 wR 和 wR & hR 的宽度设置为 528

评论

0赞 Community 9/5/2023
正如目前所写的那样,你的答案尚不清楚。请编辑以添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。您可以在帮助中心找到有关如何写出好答案的更多信息。