【问题标题】:Swift Constraints & AnchorsSwift 约束和锚点
【发布时间】: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调用时)

标签: ios swift constraints


【解决方案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()

非常容易定制

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-19
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 2018-04-02
    • 2023-03-19
    相关资源
    最近更新 更多