Настройка адресной книги iPhone ModalView - PullRequest
0 голосов
/ 12 июля 2009

У меня быстрый вопрос, я надеялся, что кто-то здесь с большим опытом может пролить свет на это.

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

Однако я хотел бы изменить цвет панели поиска, заголовков разделов и фона представления контакта, отображаемого после выбора контакта из списка tableView.

Кажется, что независимо от того, что я пытаюсь (переопределить методы UINavigationController, установить свойства непосредственно при загрузке представления в viewLoaded, перебрать подпредставления в представлении с одним контактом, итеративно установив backgroundColor в clearColor и установив базовый вид для фонового изображения и т. д.) изменения не прилипают. Заголовки / панель поиска всегда синего цвета, а фон в представлении с одним контактом всегда является полосатым сине-белым фоном (в случае итеративной настройки clearColor для всех подпредставлений, я получаю очень странное поведение для этого, и это просто ощущается как такой уродливый хак).

Кто-нибудь знает, как это может быть достигнуто? Я подозреваю, что это связано с тем, что представление является модальным представлением. Есть идеи ??

Я действительно не хочу иметь доступ к API более низкого уровня c. Решение этой проблемы было бы неразберихой в отношении локализации, так как я не знал бы, как отсортировать список контактов и индекс tableView во многих языках нелатинского алфавита (я могу это сделать бесплатно, если мне удастся сохранить использование основы на основе какао). Кроме того, я уверен, что оптимизация Apple для загрузки / обработки списка контактов в любом случае превзойдет мою собственную. Из того, что я могу понять, Apple получает прямой доступ к базе данных AB sqlite, в то время как я неизбежно буду вынужден обращаться к ней с еще одного уровня абстракции ... (API на основе c)

Не против выкатить мои собственные представления адресной книги, используя c API (что является нелепым излишним из-за всех накладных расходов на управление данными, связанных только с изменением некоторых цветов и фона ... ну да ладно), если бы вы, ребята, могли в качестве альтернативы, укажите мне варианты сортировки с поддержкой нескольких языков / алфавита (очевидно, что было бы просто изменить цвета + фон, придерживаясь структуры AddressBookUI).

ЛЮБАЯ проницательность вообще ЦЕНА! *

СПАСИБО,

Хосе

1 Ответ

1 голос
/ 12 июля 2009

Удачи. Вы копаетесь в неэкспонированных частях этого API и можете или не сможете получить желаемый результат. В большинстве случаев это будет метод проб и ошибок, а поскольку вы не используете опубликованные API, будущие обновления ОС могут повредить ваше приложение и т. Д.

Apple предпочитает поддерживать согласованность внешнего вида определенных частей пользовательского интерфейса. Интерфейс адресной книги является одним из них.

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

...