如何获得 UITableView 约束?
Posted
技术标签:
【中文标题】如何获得 UITableView 约束?【英文标题】:How to get UITableView constraints? 【发布时间】:2017-02-13 14:18:53 【问题描述】:我有一个带有约束的UITableView
。当我尝试检索 UITableView
的约束时,它返回 0 个元素。有什么帮助吗?
self.tableView.constraints
【问题讨论】:
你在哪里打电话?在viewDidLoad()
?
你想如何/在哪里使用它?
当用户执行删除行时。
【参考方案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
中。以上是关于如何获得 UITableView 约束?的主要内容,如果未能解决你的问题,请参考以下文章
如何从应用程序委托访问 uitabbarcontroller 内的 uinavigationcontroller 内的 uitableview?