UITableView addSubview и строки таблицы - PullRequest
2 голосов
/ 25 августа 2011

Я пытаюсь добавить пользовательское представление в UITableView, созданный с помощью кода из UITableViewController. Это представление HUD-окна с сообщением ( MBProgressHUD )

Итак, у меня есть метод reload (), вызываемый из переопределенного метода initWithStyle () и кнопки обновления таблицы:

- (void) reload {
    HUD = [[MBProgressHUD alloc] initWithView:self.tableView];
    [self.view addSubview:HUD];
    HUD.delegate = self;
    HUD.labelText = @"Downloading";
    [HUD showWhileExecuting:@selector(reloadWithHUD) onTarget:self withObject:nil animated:YES];
}

В первый раз HUD появляется за строкой таблицы. После загрузки, когда я нажимаю кнопку перезагрузки, вид отображается как ожидалось. Метод initWithStyle () (для ясности удален некоторый код):

- (id)initWithStyle:(UITableViewStyle)style {
    self = [super initWithStyle:style];
    if (self) {
        // Custom initialization.
        self.title = NSLocalizedString...

        UIBarButtonItem *button = [[UIBarButtonItem alloc] initWithTitle ... action:@selector(reload)];
        self.navigationItem.rightBarButtonItem = button;
        [button autorelease];
        [self reload];      
    }

    return self;
}

Я попытался изменить представление HUD с помощью простой UILabel, с тем же результатом. Я также изменил код для вызова reload () из viewDidLoad (), но тоже не работает. Как я могу решить эту проблему? Большое спасибо.

РЕДАКТИРОВАТЬ: Чтобы прояснить это, вот возможное решение этой проблемы. Большое спасибо Биллу Браски за помощь:

HUD = [[MBProgressHUD alloc] initWithView:self.view];
[[[UIApplication sharedApplication] keyWindow] addSubview:HUD];

Ответы [ 2 ]

4 голосов
/ 25 августа 2011

Вот что я делаю в своем приложении с почти идентичным приложением.

Вам необходимо добавить его в основное окно WINDOW, а не в tableView.

HUD = [[MBProgressHUD alloc] initWithView:self.view.window];
[self.view.window addSubView:HUD];
1 голос
/ 07 июля 2014

Мой проект основан на IOS 7 Это помогает мне

[self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...