将 Subview 添加到 self.tableView.tableHeaderView 不起作用

Posted

技术标签:

【中文标题】将 Subview 添加到 self.tableView.tableHeaderView 不起作用【英文标题】:Add Subview to self.tableView.tableHeaderView does not work 【发布时间】:2012-01-06 16:15:53 【问题描述】:

我有一个UITableViewController,我想扩展该表的tableHeaderView

所以在viewDidLoad 我添加了以下内容:

self.tableView.tableHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, self.tableView.frame.size.width, 60.0f)];

很好,效果很好 - 我得到了我的标题视图。

现在我想在该视图的顶部添加一个按钮。所以我添加以下代码:

UIButton *someButton = [[UIButton alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 100.0f, 20.0f)];
[someButton setTitle:@"Filter" forState:UIControlStateNormal];

[self.tableView.tableHeaderView addSubview:someButton];

但该按钮不会出现在tableHeaderView 上。当我使用 UILabel 而不是 UIButton 运行相同的代码时,我可以看到标签。

我的错误在哪里?

【问题讨论】:

请注意:上述代码的第一行将导致非 ARC 应用程序发生泄漏。仅供复制和粘贴此代码的任何人参考。 【参考方案1】:

看看这个 SO 问题:UIButton - alloc initWithFrame: vs. buttonWithType:

我建议你使用UIButton *someButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 或类似的东西。

【讨论】:

以上是关于将 Subview 添加到 self.tableView.tableHeaderView 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

iOS7 ViewControllers 将 subView 添加到 topViewController 后不会出现

将 UIView 作为 SubView 添加到自定义类、UIView 的子类、Swift

给 UIWindow 添加 subview 有啥坏处?

如何使用 UISilder 在 SubView 中添加和删除 UIButtons?

在Subview位置选择滚动视图子视图滚动

将元素添加为子视图后,元素位置发生变化