Swift UIView 自动布局和约束
Posted
技术标签:
【中文标题】Swift UIView 自动布局和约束【英文标题】:Swift UIView autolayout and constraints 【发布时间】:2019-08-01 05:54:48 【问题描述】:我的场景,我在键盘顶部创建了工具栏视图。我在 ViewController 顶部添加了 UIView 拖放,如下图所示
在这里,iPhone X 我可以看到完美的尺寸宽度,但如果我运行其他设备,宽度会发生变化。所以工具栏视图显示宽度的一半,而不是显示完美的宽度。如何为此设置自动布局和约束。如何解决这个问题?
【问题讨论】:
如果您可以拖放添加它,您也可以将其固定在故事板中 怎么做?抱歉,我找不到你@Lu_ 向我们展示您在 Interface Builder 中应用于Tool Bar
的约束
你以前用过情节提要吗?您可以搜索故事板约束的堆栈溢出
你没有显示任何代码,没有来自可视化调试器的截图,这样的问题很难理解
【参考方案1】:
我和你一样添加了视图
有约束
将此视图添加为inputAccessoryView
myTextField.inputAccessoryView = viewAccessory
而且工作正常
编辑 - 工具栏作为 InputAccesory
您可以使用工具栏来实现这一点(没有任何约束头痛)。检查以下步骤。
选择如下工具栏并添加此工具栏作为您的视图。
现在通过拖放UIBarButtonItem
添加如上图所示的按钮,并为每个BarButton 分配图像。要使其宽度灵活且分布均匀,只需添加Flexible Space Bar Button Item
。
现在您的工具栏层次结构应该如下所示
在你的代码中
@IBOutlet var toolBarAccessory: UIToolbar!
@IBOutlet weak var myTextField: UITextField!
override func viewDidLoad()
super.viewDidLoad()
myTextField.delegate = self
myTextField.inputAccessoryView = toolBarAccessory
输出:
【讨论】:
哇。这是我的预期。我也有这样的情况,但无论如何我都没有工作我是仔细检查,我将添加我的约束屏幕。谢谢人 请检查上面更新了我的问题。仍然无法正常工作。如果我做错了什么,请告诉我。 @BenDev 检查更新的答案。你不需要任何单一的约束。如果你想尝试新的更新,那就去吧。以上是关于Swift UIView 自动布局和约束的主要内容,如果未能解决你的问题,请参考以下文章
在 Swift 运行时更改自动布局约束的 UIView 的框架
如何在ios swift中以编程方式创建自动布局等宽度约束?