如何以编程方式在 table 查看页脚中为 UIView 设置约束?

How to set constraints for UIView in table view footer programatically?

我正在创建自定义视图,例如

UIView *footerView = [[UIView alloc] initWithFrame:CGRectMake(0,0,40,0)];

并将其分配给 table 视图的页脚,如

self.tableView.tableFooterView = footerView;

当我用框架设置它时我真的没有问题,但我不想这样做,我想以编程方式设置它。所以我正在做的是,

现在我改成了

[self.tableView.tableFooterView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[_tableView]|" options:0 metrics:nil views:dict]];

[self.tableView.tableFooterView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[_tableView]|" options:0 metrics:nil views:dict]];

但这会使我的应用程序崩溃,我们将不胜感激。谢谢

您不需要为 table 视图的页脚视图相对于 table 视图设置约束。页脚视图的定位由 table 视图本身管理(尽管您可以在页脚视图内添加约束,即页脚视图及其子视图)。您想要 return 的是页脚视图的高度。

//Put this in your viewDidLoad
UIView *footerView = [[UIView alloc] initWithFrame:CGRectMake(0,0,320,40)];
self.tableView.tableFooterView = footerView;

高级:

如果您的页脚视图根据标签或页脚视图中的某些其他视图动态调整大小。然后,您可以将 UIView 子类化为您的页脚视图,并将其固有的内容大小方法覆盖为 return 页脚视图的实际高度,然后 return self.tableView.footerView.intrinsicContentSize.height

希望对您有所帮助。