首页 > 解决方案 > 如何使用自动布局在对象之间创建间隙

问题描述

我的代码具有 UITextField 和 UITableView。我希望我的代码使用 AutoLayout 在文本字段和表格视图之间创建一个小间隙。现在,如果代码的位置在 iPhone 模式下运行良好,但如果它在 iPad 中,则文本字段将打印在 tableview 上。您可以在下面的照片中看到我正在处理的内容:

hitsLabel.topAnchor.constraint(equalTo: view.centerYAnchor, constant: -250)
hitsLabel.trailingAnchor.constraint(equalTo: view.centerXAnchor, constant: 150)
hitsLabel.widthAnchor.constraint(equalToConstant: 120)
hitsLabel.heightAnchor.constraint(equalToConstant: 40)

theScores.topAnchor.constraint(equalTo: view.topAnchor, constant: 300)
theScores.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: 0)
theScores.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 0)
theScores.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: 0)

在此处输入图像描述

标签: iosautolayoutconstraintsswift4nslayoutconstraint

解决方案


我会建议这样的事情:

hitsLabel.topAnchor.constraint(equalTo: view.topAnchor, constant : 100),
hitsLabel.trailingAnchor.constraint(equalTo: view.centerXAnchor, constant :150),
hitsLabel.widthAnchor.constraint(equalToConstant: 120),
hitsLabel.heightAnchor.constraint(equalToConstant: 40),
theScores.topAnchor.constraint(equalTo: hitsLabel.bottomAnchor, constant: 100),
theScores.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: 0),
theScores.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 0),
theScores.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: 0),

这会将文本字段放置在距视图顶部 100 像素的位置,然后 tableView 的顶部将距文本字段底部 100 像素。

我建议也为文本字段的左侧添加约束


推荐阅读