将 xib 文件作为 UITableViewController 中的标头添加到 UITableView
Posted
技术标签:
【中文标题】将 xib 文件作为 UITableViewController 中的标头添加到 UITableView【英文标题】:Add a xib file to UITableView as a header within the UITableViewController 【发布时间】:2018-09-24 15:13:51 【问题描述】:我有一个UITableViewController
的子类,我的桌子很好,准备好了。
我的问题是,我想添加一个自定义 UIView
作为表格的标题。所以我创建了一个空的xib文件“HeaderView.xib”并在其中添加了我的视图(一个UIView
和2个UIButton
)并将UITableViewController的类添加为文件所有者,并将我的两个按钮连接到该类:
- (IBAction)addNewItem:(id)sender
- (IBAction)toggleEdittingMode:(id)sender
在一个类扩展中,我添加了一个 UIView 类型的属性:
@property (nonatomic, strong) IBOutlet UIView *headerView;
然后我重写了getter方法:
- (UIView *)headerView
if (_headerView)
[[NSBundle mainBundle] loadNibNamed:@"HeaderView"
owner:self
options:nil];
return _headerView;
在 viewDidLoad 中:
self.tableView.tableHeaderView = self.headerView;
我不知道这是否是正确的方法,因为我在运行应用程序时看不到标题
感谢您的帮助
【问题讨论】:
我该怎么做? :) 【参考方案1】:您为headerView
实现getter 的方式将始终返回nil
。这样的事情应该表现得更恰当:
- (UIView *)headerView
if (!_headerView)
_headerView = [[NSBundle mainBundle] loadNibNamed:@"HeaderView" owner:self options:nil].firstObject;
return _headerView;
您实际上需要将_headerView
设置为从loadNibNamed
返回的视图数组中的第一个对象。
【讨论】:
以上是关于将 xib 文件作为 UITableViewController 中的标头添加到 UITableView的主要内容,如果未能解决你的问题,请参考以下文章