Swift 约束和锚点
Posted
技术标签:
【中文标题】Swift 约束和锚点【英文标题】:Swift Constraints & Anchors 【发布时间】:2017-11-29 05:37:32 【问题描述】:事实上,我一直在寻找下拉按钮的示例。但不幸的是,它并没有完全发挥作用,而且我不太清楚动态约束和锚点是如何工作的。因此,我请求您的帮助。
'NSGenericException',原因:'无法用激活约束 锚点和 因为他们没有 共同祖先。约束或其锚点是否引用了 不同的视图层次结构?这是违法的。
你可以在 Github 上找到我的源代码:https://github.com/Archetapp/Drop-Down-Menu/blob/master/sdafjkbslib/ViewController.swift
我发现了类似的问题,他们的解决方案是:
在激活约束之前检查您是否以编程方式创建的视图添加到其父级。
检查是否在viewDidLoad()/viewWillAppear()里面写了约束激活码。您应该在 updateViewConstraints 或 viewWillLayoutSubviews 中编写约束。
检查是否关闭 translatesAutoresizingMaskIntoConstraints。
但这对我没有帮助。
【问题讨论】:
你需要显示下拉菜单对吗? @GaneshManickam 是的,忘记写了,它显示并工作,当控制器关闭时出现问题(当按钮被方法RemoveFromSuperview调用时) 【参考方案1】:对于下拉菜单,我最喜欢这个library 更少的代码并且易于处理
初始化
let dropDown = DropDown()
// The view to which the drop down will appear on
dropDown.anchorView = view // UIView or UIBarButtonItem
// The list of items to display. Can be changed dynamically
dropDown.dataSource = ["Car", "Motorcycle", "Truck"]
处理选择
// Action triggered on selection
dropDown.selectionAction = [unowned self] (index: Int, item: String) in
print("Selected item: \(item) at index: \(index)")
处理显示和隐藏
dropDown.show()
dropDown.hide()
非常容易定制
希望对你有帮助
【讨论】:
以上是关于Swift 约束和锚点的主要内容,如果未能解决你的问题,请参考以下文章