使用 UINavigationController 时在 UITableView 顶部插入图像?

发布于 2024-10-21 03:23:35 字数 526 浏览 2 评论 0原文

我的 MainWindow.xib 中有一个 UINavigationController 和 UITableView。我正在尝试在视图顶部插入不可触摸/不可移动的图像。 (我不想简单地更改 UINavigationBar 背景,因为根据我的经验,UINavigationBar 高度不能任意增加。)

由于这是一个根视图,它的行为由我的 RootViewController 控制。当视图加载时,我使用 self.navigationController.navigationBarHidden = YES; 隐藏导航栏

我尝试将 UIView 添加到 UITableView 的顶部,但是当用户滚动表格时,顶部图像移动。如何将固定图像放置在 UITableView 的顶部,而不像单元格一样移动,并且不使用 UINavigationBar 背景图像?

天真的可能性:

  • 将视图包含在另一个视图中,该视图的顶部包含图像?
  • 在屏幕顶部覆盖图像蒙版?

(HIG 违规,有人知道吗?)

I have a UINavigationController and UITableView in my MainWindow.xib. I'm trying to insert a non-touchable/non-movable image at the top of the view. (I don't want to simply change the UINavigationBar background, as from what I've experienced, the UINavigationBar height cannot be arbitrarily increased.)

As this is a root view, its behaviour is controlled by my RootViewController. When the view loads, I hide the navigation bar using self.navigationController.navigationBarHidden = YES;

I've tried adding a UIView to the top of the UITableView, but when the user scrolls through the table, the top image moves. How can I place a stationary image at the top of the UITableView without it moving as if it were a cell and without using a UINavigationBar background image?

Naively-Considered Possibilities:

  • Enclose the view in another view, the top of which contains the image?
  • Overlay an image mask at the top of the screen?

(HIG violation, anyone?)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

层林尽染 2024-10-28 03:23:35

如果您的视图控制器是 UITableViewController,您将无法轻松添加另一个视图,因为 tableViewController 仅管理一个视图,即 UITableView。我建议使用普通的 UIViewController,而不是为顶视图添加 UIView 并为内容添加 UITableView 作为主视图的子视图>viewController.view。然后,在 UIViewController 中实现 UITableViewDelegateUITableViewDataSource 协议。

If your view controller is a UITableViewController you can't easily add another view because the tableViewController just manages a single view which is the UITableView. I recommend using a plain UIViewController instead where you add a UIView for your top view and a UITableView for your content as subviews to the main viewController.view. Then, implement the UITableViewDelegate and UITableViewDataSource protocols in your UIViewController.

热风软妹 2024-10-28 03:23:35

您可以创建另一个 UIViewController,其中包含 UITableViewController 和顶部的静态图像。这样,您甚至可以调整表格视图的大小,以便静态图像显示在表格上方而不是表格上方。

UIViewController *middleViewController = [[UIViewController alloc] init];
[[middleViewController view] addSubview:tableView];
[[middleViewController view] addSubview:staticImageView];
...
[navigationController initWithRootViewController:middleViewController];

自从我上次使用可可应用以来已经很长时间了,所以我不能保证它有效。

You can create another UIViewController which contains the UITableViewController and your static image on top. This way, you can even resize the table view so the static image is displayed above and not over your table.

UIViewController *middleViewController = [[UIViewController alloc] init];
[[middleViewController view] addSubview:tableView];
[[middleViewController view] addSubview:staticImageView];
...
[navigationController initWithRootViewController:middleViewController];

Has been a long time since I made my last cocoa application, so I cannot promise that it works.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文