事实上,我正在寻找一个下拉按钮的示例。但不幸的是,事实证明它没有完全发挥作用,我不清楚动态约束和锚点是如何工作的。因此,我请求你的帮助。
'NSGenericException',原因:'无法用
激活约束 锚点和 因为他们没有 共同祖先。约束或其锚点是否引用了项目 不同的视图层次结构?这是非法的。
您可以在Github上找到我的源代码:https://github.com/Archetapp/Drop-Down-Menu/blob/master/sdafjkbslib/ViewController.swift
我发现了类似的问题,他们的解决方案是:
检查在激活约束之前是否已将以编程方式创建的视图添加到其父级。
检查是否在viewDidLoad()/ viewWillAppear()中编写约束激活码。您应该在updateViewConstraints或viewWillLayoutSubviews中编写约束。
检查是否关闭translatesAutoresizingMaskIntoConstraints。
但它对我没有帮助。
答案 0 :(得分: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()
非常容易定制
希望这会对你有所帮助