Почему этот UIView не представлен перед UITableView? - PullRequest
0 голосов
/ 20 марта 2012

У меня есть UINavigationController / UITableView, и я хочу представить UIView поверх него, когда таблица пуста, чтобы дать пользователю подсказку о том, как добавить элементы в таблицу.

Я никогда не делал UIView (в отличие от UIViewController прежде), поэтому я сделаю шаг за шагом, чтобы сделать это:

  1. Создать новый класс UIView - MakeSentenceHelperView
  2. Создайте перо MakeSentenceHelperView.xib
  3. Установите для владельца файла MakeSentenceHelperView

Загрузите перо в MakeSentenceHelperView:

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code
        NSLog(@"makesentencehelperview init");
        [[NSBundle mainBundle] loadNibNamed:@"MakeSentenceHelperView" owner:self options:nil];
    }
    return self;
}

ипредставьте MakeSentenceHelperView в UITableViewController:

        //present the placeholder view for sentences
        MakeSentenceHelperView *makeSentenceHelperView = [[MakeSentenceHelperView alloc] init];

        NSLog(@"present placeholder: self.navigationcontroller.view: %@", self.navigationController.view);

        //Something like this:
        [self.navigationController.view addSubview:makeSentenceHelperView];
        [self.navigationController.view bringSubviewToFront:makeSentenceHelperView];

Класс загружается и регистрируется нормально, но ничего не появляется перед UITableView - где я ошибся?

ОБНОВЛЕНИЕ: если ядобавьте [self.tableView setHidden:YES];, тогда табличное представление исчезнет, ​​и пространство станет черным и пустым.Я предполагаю, что это означает, что я где-то неправильно настраиваю View.

Ответы [ 2 ]

0 голосов
/ 21 марта 2012

Спасибо @Aadhira за их ссылку, которая привела меня к проблеме.

  1. Мне нужно было добавить awakeFromNib
  2. Мне не хватало [self addSubview: self.view]; в конце initWithFrame.
0 голосов
/ 20 марта 2012

Вы можете использовать https://github.com/ecstasy2/toast-notifications-ios/ для отображения Toast view liek Android. Проверьте размер массива и, если табличное представление не отображается, затем вызовите этот и покажите любой пользовательский метод.

...