2014-01-10 4 views
0

Фон: У меня есть контроллер вида, который имеет вид заголовка (UIView), нижний колонтитул (UIView), вид таблицы и панель поиска (UISearchBar) над ним. Это делается с помощью xib. Мне нужно представить это внутри popover. Это сделано, и все работает нормально.Таблица Просмотр в содержимом Просмотр контроллера popover, не изменяющего размер должным образом

Проблема: проблема начинается, когда я запускаю клавиатуру для поиска. Ключевая плата уменьшает размер popover. Из-за этого я не вижу нижних ячеек таблицы. Понятия не имею почему. Я предполагаю, что он не будет правильно изменен.

Что я пытался: я попытался уменьшить высоту таблицы с помощью уведомлений клавиатуры. Он работает, но я хочу более элегантное решение, а также хочу, чтобы я делал неправильно?

Это относится к iOS 6.0. Он отлично работает с 7.0

EDIT При дальнейшем тестировании я обнаружил, что мое решение не работает :(

Любая помощь высоко ценится Спасибо

Посмотреть контроллер XIB схемы:. enter image description here

+0

Вы используете ограничения? Пробовали ли вы настройку controller.view.autoResizingMask = UIViewAutoResizingFlexibleHeight и tableView.autoResizingMask = UIViewAutoResizingFlexibleHeight и чтобы ваш верхний и нижний колонтитулы отображали верхний и нижний колонтитулы таблицыView? –

+0

@GeorgeGreen: Yup ... авторезистирующие маски установлены в xib. Я забыл упомянуть. Нет, я не использую ограничений. –

+0

В вашем вопросе, когда вы говорите «над ним», вы имеете в виду подсмотры его взгляда вправо? У вас есть стандартный UITableView или подкласс? Определяется ли авторезистентность для всех представлений в иерархии? Не могли бы вы вставить часть своего кода/скриншот IB? –

ответ

1

Убедитесь, что вы установили желаемый размер вашего контроллера вида в popover. Это делается двумя способами: вы можете переопределить метод contentSizeForViewInPopover на v контроллер МЭН, что вы показываете в пирог, например, так:

- (CGSize)contentSizeForViewInPopover 
{ 
    // return the size WITHOUT a navigationbar height 
    return CGSizeMake(320, 300); 
} 

И/или вы можете установить свойство на пирог, например, так:

// if your inner viewcontroller is a UINavigationViewController, return the size WITH the 
// navbar height 
self.popover.popoverContentSize = CGSizeMake(320, 344); 

Обратите внимание на комментарии.

+0

Я устанавливаю contentSizeForViewInPopover в viewdidload viewcontroller :( –

+0

@PrathameshSaraf Я думаю, что уже слишком поздно. Попробуйте переопределить метод и посмотреть, работает ли это. –

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