为 iPhone 中的不同屏幕改变 UITextFields 的高度和间距

Posted

技术标签:

【中文标题】为 iPhone 中的不同屏幕改变 UITextFields 的高度和间距【英文标题】:Vary the UITextFields height and spacing between them for different screens in iPhone 【发布时间】:2019-02-27 14:27:07 【问题描述】:

目前,我们正在将网站注册屏幕复制到我们在 ios 中的原生移动应用程序。到目前为止,我们正在使用 NSLayoutConstraints 以编程方式设置它们之间的约束。我尝试通过在 UITextFields 之间提供前导空间和尾随空间以及高度约束来在情节提要中进行设置,但我希望根据不同的屏幕设置不同的高度约束,以便它在任何地方看起来都一样以及垂直间距.我希望这可以没有编码部分。

https://dribbble.com/shots/6006968-ReCars-Sign-Up-Login

注册屏幕:

【问题讨论】:

你能改写你想要达到的目标吗?对我来说,不清楚“但我希望设置高度约束根据不同的屏幕而有所不同,以便它在任何地方看起来都一样以及垂直间距。” 【参考方案1】:

有不同的方法可以实现这一点。

a> 不要对文本字段使用硬编码的高度约束。而是尝试使用相对约束。 Sample Relative Constraint Example . 在示例中,我将相对于其父视图对文本字段进行高度约束。所以根据它的superview,它的高度会调整。

b> 您还可以探索自适应布局模式。根据尺寸等级,您可以改变约束。

【讨论】:

【参考方案2】:

像一个选项一样,您可以使用乘数 1:N 设置文本字段的等高约束。我会在下面添加图片。

但是,我不推荐。因为这个解决方案会给你带来很多问题。在我看来,在屏幕上调整文本文件的更好方法是使用UIScrollView,但这样,您将使用代码。

首先,为textfieldsuperview 添加相等的高度。

其次,设置乘数。

希望对您有所帮助

但请记住,最好少做一次,而不是用坏的方式做,然后重新制作。 :)

【讨论】:

非常感谢。我可以知道乘数背后的逻辑吗 请说出乘数 1:N 背后的概念 @ElizabethMoly 这是您的 superview 与您的 child view 关联的比例(在您的情况下为 UITextField)。例如,当您设置乘数 1:14 时,您的 child view 的高度将被计算 (superview height) / 14 = child view (你的UITextField)身高

以上是关于为 iPhone 中的不同屏幕改变 UITextFields 的高度和间距的主要内容,如果未能解决你的问题,请参考以下文章

如何使用情节提要为不同的 iPhone 屏幕尺寸设置不同的字体尺寸?

是否可以为不同的 iPhone 屏幕设置宽度和高度?

为 iPhone 和 iPad 启动屏幕选择不同的背景图像

iPhone在闪存中的不同屏幕尺寸? (获取黑条)

切换uitextf时停止键盘关闭

在 Xcode 中将图像尺寸调整为不同的 iPhone 屏幕尺寸