2013-10-01 4 views
0

У меня есть типичный макет Master-Detail с UITableView в моем MasterViewController.Поместите статическую UILabel поверх прокрутки UITableView

В моем XIB я разместил UILabel поверх UITableView.

Я намерен использовать этот ярлык, чтобы уведомить пользователя о том, что его критерии поиска не дали никаких результатов, и поэтому e не являются строками в таблице. И в зависимости от данных я покажу/спрячу эту метку.

У меня есть UIView как контейнер для моего UITableView и моего UILabel.

Почему, когда я запускаю свое приложение, метка нигде не найдена и почему в дизайнере, когда я нажимаю на свой ярлык (или на столе, если на то пошло), и я нажимаю на Редактор -> Упорядочить, все варианты выделены серым цветом?

XCODE SCREENSHOT

С уважением!

+0

Ваши подвиды в правильном порядке? Фронт большинства находится в верхней части списка? – nielsbot

+0

Как вы можете видеть на снимке экрана, мой табличный вид перед моим лейблом, после вашего вопроса, я попробовал их наоборот без каких-либо успехов. –

+0

Вы используете UITableViewController вместо UIViewController? – mmackh

ответ

1

Вы не можете добавить subviews в UITableViewController через построитель интерфейса. Вместо этого вы должны попробовать использовать UIViewController. Для того, чтобы повторить UITableViewControllers преимущества, вы можете добавить следующее к - метод viewDidLoad (и, таким образом, предотвратить Jumpy UIRefreshControls и т.д.)

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

EDIT:

Это работает 100%. Единственное объяснение заключается в том, что вы перетаскиваете ярлык в TableView, а не в его супервизор. Я создал новое приложение, вот что иерархия должна выглядеть следующим образом:

Обратите внимание, как Метка отчетливо рядный и ниже TableView? Вот что имитатор Выведет:

Надежда, что помогает.

+0

Я изменил свой MasterViewController.h из UITableViewController на UIViewController и исправил одну ошибку, вызванную в моем init, но, к сожалению, я все еще не вижу метку. –

+0

В вашем представлении был загружен метод, попробовав принести ярлык в начало '' '[self.view bringSubviewToFront: self.label];' '' – mmackh

+0

Все еще не увидев метку. Я думал о том, чтобы попробовать его в новом проекте, но теперь я вижу, что XCode 5 заставляет меня использовать раскадровки, и я никогда раньше не работал со StoryBoards. Мне нужно пропустить что-то простое ... –

1

UITableView имеет tableHeaderView и tableFooterView Недвижимость.

Вы можете решить проблему в следующим образом: self.tableView.tableHeaderView = label;

+0

Правда, но это не всегда будет видно, т. Е. Оно исчезает при прокрутке. – mmackh

+1

Спасибо, Святослав Якимов, это действительно работает, это не совсем то, что я хотел (как упоминает мемакх), но, как я уже упоминал в своем первоначальном вопросе, эта метка должна отображаться только тогда, когда таблица не может представить никаких данных, типичное сообщение будет «Ваш поиск не дал никаких результатов». Тем не менее, я все еще хочу понять, почему я не могу разместить статические элементы управления в UIView поверх UITableView. –

Смежные вопросы