gpt4 book ai didi

ios - 在 Xcode 10 中添加自定义 UITableViewController header

转载 作者:行者123 更新时间:2023-11-28 23:34:15 26 4
gpt4 key购买 nike

我正在阅读《iOS 编程》第四版《大 Nerd 牧场指南》。我使用的是 Xcode 10.0,而本书使用的是 Xcode 5.0,并且我已经部署到运行 iOS 11.0 的第六代 iPad。我在第 9 章中,尝试为 UITableViewController 派生类 ItemsViewController 添加自定义 header View 。

我创建了一个名为 HeaderView.xib 的空用户界面文件。在该文件中,我创建了一个 UIView,其中包含界面生成器中的两个按钮。我将 File's Owner 类类型设置为 ItemsViewController。我将 HeaderViewUIView 大小更改为自由格式,并将 View 大小调整为按钮的大小。我将 HeaderView 的背景颜色设置为清除。我还将文件所有者 View 连接到界面生成器中的 UIView

在 ItemsViewController 内部,我添加了一个 IBOutlet UIView* 属性,以将 HeaderView 连接到 ItemsViewController。我编写了 - (UIView*)headerView 实例方法来加载标题 View 包。

- (UIView*)headerView
{
if (!_headerView)
{
[[NSBundle mainBundle] loadNibNamed:@"HeaderView" owner:self options:nil];
}

return _headerView;
}

然后在 viewDidLoad 中设置标题 View 。

- (void)viewDidLoad
{
[super viewDidLoad];

[self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"UITableViewCell"];

UIView* header = self.headerView;
[self.tableView setTableHeaderView:header];
}

当我部署并运行该应用程序时,出现黑屏并显示我添加的两个按钮。如果我删除了 viewDidLoad 的最后两行,应用程序可以正常加载我制作的一些虚拟数据。

为什么 HeaderView 会覆盖所有 ItemsViewController 显示选项并显示黑屏?

最佳答案

这就是问题

I have also connected the File's Owner view to the UIView in interface builder.

由于文件所有者是您的 View Controller ,因此您将覆盖现有的 TableView 。这就是为什么您只看到标题而看不到表格的原因。您需要定义另一个变量,即 IBOutlet 并将 header 链接到该变量。

关于ios - 在 Xcode 10 中添加自定义 UITableViewController header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55581004/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com