это нормально, чтобы получить доступ к подпредставлениям uiviews - PullRequest
0 голосов
/ 19 мая 2011

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

  1. Прозрачный UISearchBar: iPad /iPhone uiSearchbar прозрачный фон
  2. Различные цвета UISegmentedControl: UISegmentedControl цвет выбранного сегмента

Мне было интересно, это законно?Кажется, что какой-то элемент взлома включается всякий раз, когда кто-то жестко кодирует что-то вроде [[view subviews] objectAtIndex:0], но, кажется, это делается везде ... может кто-то прокомментировать это и, возможно, дать некоторые перспективы?Это нормально по книгам правил?Кто-нибудь выпускал подобный код и был ли он принят Apple?

Ответы [ 3 ]

1 голос
/ 19 мая 2011

Это выставлено как часть API, поэтому это законно.Я сделал это в приложении, которое в настоящее время находится в App Store, и я знаю, что другие сделали то же самое.

0 голосов
/ 19 мая 2011

То, что вы можете что-то сделать, не означает, что это уместно во всех местах. Возможность доступа к подпредставлениям вида необходима в некоторых ситуациях, однако я бы опасался, что определенный UIView находится на определенной позиции в иерархии для компонентов, которые вы не поддерживаете. Нет гарантии, что конкретное подпредставление всегда будет нулевым подпредставлением в будущих версиях SDK.

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

0 голосов
/ 19 мая 2011

Почти все хорошо выглядящие приложения сделали это и были одобрены просто отлично.Когда вы примете решение сделать это, просто будьте готовы к новой версии iOS, которая может нарушить вашу работу, и будьте готовы немедленно выпустить обновление

...