UISearchBar обрезается под строкой состояния при добавлении в UISearchDisplayController

Я хочу, чтобы моя панель поиска рисовала свой фон, вытянутый вверх под строкой состояния, например:

Это соответствующий код для изображения выше:

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.searchBar = [[UISearchBar alloc] init];
    self.searchBar.delegate = self;
    [self.view addSubview:self.searchBar];

    self.searchBar.translatesAutoresizingMaskIntoConstraints = NO;
    NSDictionary *views = @{@"v":self.searchBar,
                            @"topLayoutGuide":self.topLayoutGuide};

    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[topLayoutGuide][v]" options:0 metrics:nil views:views]];
    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[v]|" options:0 metrics:nil views:views]];

    [self.searchBar setBackgroundImage:[UIImage imageNamed:@"searchbarBG"] forBarPosition:UIBarPositionTopAttached barMetrics:UIBarMetricsDefault];
}

- (UIBarPosition)positionForBar:(id <UIBarPositioning>)bar
{
    return UIBarPositionTopAttached;
}

Проблема возникает, когда я добавляю панель поиска кUISearchDisplayController добавив следующую строку в концеviewDidLoad метод:

self.mySearchDisplayController = [[UISearchDisplayController alloc] initWithSearchBar:self.searchBar contentsController:self];

Вот результат, который я получаю:

Обратите внимание, что изображение выглядит обрезанным. Это отличается от того, на что это похоже, если я изменю UIBarPositionTopAttached на UIBarPositionTop в коде:

Отрезанное изображение заставило меня задуматьсяclipsToBounds и я мог бы заставить строку поиска отображаться правильно, добавив этот фрагмент кода в концеviewDidLoad:

for (UIView *subview in self.searchBar.subviews) {
    subview.clipsToBounds = NO;
}

Так что я думаю,UISearchDisplayController возиться сclipsToBounds собственностьUISearchBar фоновый вид. Кто-нибудь еще боролся с этим? Есть ли проблема с моим кодом?

Обновить:

Еще в октябре 2013 года, помимо публикации этого вопроса, я также сообщил об этом с помощью инструмента Apple Bug Reporter. 6 января 2015 г. (слишком поздно) я получил ответ от Apple Developer Relations:

Нет планов для решения этой проблемы на основании следующего:

UISearchDisplayController больше не поддерживается. Желаемая функциональность должна быть доступна с UISearchController, и если нет (или ведет себя неправильно), пожалуйста, отправьте новую ошибку.

Сейчас мы закрываем этот отчет.

Если у вас есть вопросы по поводу разрешения, или если это все еще является критической проблемой для вас, пожалуйста, обновите ваш отчет об ошибке с этой информацией.

Обязательно регулярно проверяйте новые выпуски Apple на наличие обновлений, которые могут повлиять на эту проблему.

Ответы на вопрос(2)

Ваш ответ на вопрос