setContentInset не обновляется правильно при повороте для UITableView - PullRequest
0 голосов
/ 16 февраля 2012

У меня есть представление, содержащее UITableView.Над таблицей я хотел бы отобразить iAd.Я подумал, что лучшим способом сделать это было бы установить contentInset для таблицы на высоту баннера iAd - пока все хорошо.

Приложение поддерживает ротацию, поэтому у меня есть этот код:

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration {

    NSString *bannerSize = (UIInterfaceOrientationIsPortrait(interfaceOrientation)) ? ADBannerContentSizeIdentifierPortrait : ADBannerContentSizeIdentifierLandscape;
    int bannerHeight = [ADBannerView sizeFromBannerContentSizeIdentifier:bannerSize].height+1;

    iAdBanner.currentContentSizeIdentifier = bannerSize;
    [mainTable setContentInset:UIEdgeInsetsMake(bannerHeight, 0, 0, 0)];    
}

Это работает при первом повороте, но когда я поворачиваю назад, contentInset, по-видимому, не изменился, фактически каждый раз, когда я поворачиваю устройство, кажется, что оно установлено на «обратное» значение

Но это работает - в том случае, если я пытаюсь прокрутить таблицу, все встает на свои места.

После долгих чтений я добавил следующую строку в конец кода выше:

[mainTable scrollRectToVisible:CGRectMake(0, 0, 10, 10) animated:NO];

Это сработало!- НО - я не хочу, чтобы таблица прокручивалась обратно наверх при каждом повороте устройства, поэтому я попробовал это:

[mainTable scrollRectToVisible:CGRectMake(mainTable.contentOffset.y+bannerHeight, 0, 10, 10) animated:NO];

Но если я не наверху таблицы,Появляется оригинальная проблема в том, что заголовок текущего раздела (это обычная таблица) составляет около 20 пикселей слишком высоко или слишком низко, и сразу же исправляется с помощью ручной прокрутки.

Так что теперь я потерян - есть идеи?

1 Ответ

0 голосов
/ 16 февраля 2012

вы, вероятно, захотите использовать UIViewController вместо UITableViewcontroller и добавить UITableView программным способом.Затем вы можете легко установить рамки объявления и таблицы.А при повороте используйте вращающиеся методы, чтобы снова изменить кадры!

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