【问题标题】:How to get UITableView constraints?如何获得 UITableView 约束?
【发布时间】:2017-02-13 14:18:53
【问题描述】:

我有一个带有约束的UITableView。当我尝试检索 UITableView 的约束时,它返回 0 个元素。有什么帮助吗?

self.tableView.constraints

【问题讨论】:

  • 你在哪里打电话?在viewDidLoad()?
  • 你想如何/在哪里使用它?
  • 当用户执行删除行时。

标签: ios swift uitableview autolayout nslayoutconstraint


【解决方案1】:

以编程方式检索约束不是一个好主意。

您可以使用constraintsAffectingLayout(for:) 获得影响视图的所有约束,但是,您可能会获得比预期更多的约束。

最好的解决方案是在添加给定约束时保存对给定约束的引用。如果您使用的是故事板或 xib,请为它们创建一个 IBOutlet

【讨论】:

    【解决方案2】:

    您需要获取表视图超级视图约束并将表视图检查为第一项或第二项。

    for constraint in (self.tableView.superview?.constraints)!  {
        if constraint.firstItem as! NSObject == self.tableView ||
        constraint.secondItem as! NSObject == self.tableView  {
            // table view constraints
        }
    }
    

    【讨论】:

      【解决方案3】:

      取决于应用约束的位置。 如果您在UIViewController 中有UITableView 并添加约束,则约束将应用于UIViewController 而不是UITableView

      改用此代码:

      self.tableView.superview?.constraints
      

      【讨论】:

      • 是的,我知道。但是,UITableViewCell 约束将在 UITableView 中。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-29
      • 2019-04-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多