Панель навигации 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
свойство отображаемого табличного представления, так что содержимое начинается ниже панели навигации.
НО: нет никакого способа получить доступ к отображаемому виду таблицы, извините.