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

时间:2011-03-09 07:46:10

标签: ios uitableview cocoa-touch uinavigationcontroller uikit

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

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

隐藏导航栏

我尝试将UIView添加到UITableView的顶部,但是当用户滚动表格时,顶部图像会移动。如何将静止图像放置在UITableView的顶部而不移动它就好像它是一个单元格而不使用UINavigationBar背景图像一样?

天真考虑的可能性:

  • 将视图封闭在另一个视图中,其顶部包含图像?
  • 在屏幕顶部叠加图像蒙版?

(HIG违规,有人吗?)

2 个答案:

答案 0 :(得分:1)

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

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

自从我上一次可可申请以来已经很久了,所以我不能保证它有效。

答案 1 :(得分:1)

如果您的视图控制器是UITableViewController,则无法轻松添加其他视图,因为tableViewController只管理一个UITableView视图。我建议您使用简单的UIViewController,而不是为您的热门视图添加UIView,为您的内容添加UITableView作为主viewController.view的子视图。然后,在UITableViewDelegate

中实施UITableViewDataSourceUIViewController协议