2013-10-01 35 views
0

我有一个典型的Master-Detail布局,在我的MasterViewController中有一个UITableView。在滚动的顶部放置一个静态UILabel UITableView

在我的XIB中,我在UITableView上放置了一个UILabel。

我打算使用此标签来通知用户他/她的搜索条件不会产生任何结果,因此e在表中没有行。根据数据我会显示/隐藏这个标签。

我有一个UIView作为我的UITableView和我的UILabel的容器。

为什么当我运行我的应用程序时,无处可查找标签,以及为什么在设计器中单击我的标签(或表格)时,单击编辑器 - >安排,所有的选项都变灰了吗?

XCODE SCREENSHOT

商祺!

+0

是你的正确的顺序子视图?最前面的是最高的名单? – nielsbot

+0

正如你在屏幕截图中看到的,我的表格视图在我的标签之前,在你的问题之后,我尝试了另一种方式,没有任何成功。 –

+0

你使用的是UITableViewController而不是UIViewController吗? – mmackh

回答

1

您无法通过界面构建​​器将子视图添加到UITableViewController。你应该尝试使用UIViewController。要复制UITableViewControllers好处,你可以添加以下到 - viewDidLoad方法(因此防止神经质UIRefreshControls等)

UITableViewController *tableViewController = [[UITableViewController alloc] initWithStyle:UITableViewStylePlain]; 
[tableViewController setTableView:self.tableView]; 

编辑:

这个工程100%。唯一的解释是你将标签拖入TableView而不是它的超级视图。我创建了一个新的应用程序,这里的层次应该是什么样子:

注意标签是如何明显的在线下面的实现代码如下?下面是模拟器将输出:

希望有所帮助。

+0

我将我的MasterViewController.h从UITableViewController更改为UIViewController,并修复了它在我的init中导致的一个错误,但不幸的是我仍然没有看到标签。 –

+0

在你的视图加载方法中,试着将你的标签放在前面'''[self.view bringSubviewToFront:self.label];''' – mmackh

+0

仍然没有看到标签。我想过在一个新项目上尝试它,但现在我看到XCode 5迫使我使用故事板,而我从未与StoryBoards合作过。我必须错过简单的事情...... –

1

UITableView具有tableHeaderViewtableFooterView特性。

可以解决以下方式您的问题:self.tableView.tableHeaderView = label;

+0

是的,但它并不总是可见的,即它在滚动时消失。 – mmackh

+1

谢谢Sviatoslav Yakymiv,这的确的工作,它不是我想要的(正如mmackh提到的),但正如我在我的原始问题中提到的那样,只有当表格不能显示任何数据时才需要显示此标签,将是“你的搜索没有结果”。但是,我仍然想了解为什么我不能将静态控件放置在UITableView顶部的UIView中。 –

相关问题