Панель навигации ABPeoplePickerNavigationController Стиль ЧерныйПрозрачный смещает макет

С барным стилем как BlackOpaque мой сборщик людей выглядит так:

но когда я хочу, чтобы barStyle был BlackTranslucentэто выглядит так:

Я попробовал решение отсюда

КОД:

- (void)showPeoplePickerController
{
    ABPeoplePickerNavigationController *picker = [[ABPeoplePickerNavigationController alloc] init];
picker.peoplePickerDelegate = self;

NSArray *displayedItems = [NSArray arrayWithObjects:[NSNumber numberWithInt:kABPersonPhoneProperty],
                           [NSNumber numberWithInt:kABPersonEmailProperty],
                           [NSNumber numberWithInt:kABPersonBirthdayProperty],[NSNumber numberWithInt:kABPersonAddressProperty],nil];

picker.displayedProperties = displayedItems;
picker.navigationBar.barStyle = UIBarStyleBlack;

//  picker.navigationBar.translucent = YES; //uncommented for translucent bar


[self.navigationController presentModalViewController:picker animated:YES];

}

Но как мне перенести вещи из PeoplePicker вниз?

2 ответа

ОК Вместо этого:

[self.navigationController presentModalViewController:picker animated:YES];

Отобразите свой ABPeoplePickerNavigationController, как показано ниже:

[self.navigationController presentViewController:picker animated:YES completion:nil];

А для цвета бара проверьте эту строку: picker.navigationBar.tintColor=[UIColor blackColor];

Почему вы используете полупрозрачную панель навигации в первую очередь? Контроллер представления людей не предназначен для использования с полупрозрачной панелью навигации.

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

НО: нет никакого способа получить доступ к отображаемому виду таблицы, извините.

Другие вопросы по тегам