Intereting Posts
Как импортировать iOS6.1 DocSets из Xcode4 в Xcode5 Кнопка, созданная в построителе интерфейса … что это за пунктирная линия и как ее исправить? Как сделать UIImage заполненной неправильной формой? Кнопка UINavigationBar назад без текста и фиксированного размера UIImage setImage crash заполнять модель данных CoreData из файлов JSON до запуска приложения Передача объектов JSON для сопоставления координат Swift 2 – SWRevealViewController: удалите взаимодействие на лицевой панели, когда меню открыто Добавление двух раз в NSdates В преобразовании UIImage to Texture текстура перевернута по вертикали Рамка iOS: как включить библиотеки, чтобы проект, который использует структуру, не должен Пользовательский UITableViewCell с xib-файлом и настраиваемым конструктором Масштабирование изображения после вращения Firemonkey и передвижная навигация swift 2 получить целочисленное значение из переменной разворота

Является ли настройка UISearchField частной

Мне нужно настроить UISearchBar:

  • Изменить цвет текста поиска
  • Изменить значок

Apple не предоставляет API. Однако это одно из возможных решений:

for(UIView *subView in _searchBar.subviews){ if([subView isKindOfClass:UITextField.class]){ UITextField *searchField = (UITextField*)subView; searchField.textColor = [UIColor darkGrayColor]; UIImage *image = [UIImage imageNamed: @"loop.png"]; UIImageView *iView = [[UIImageView alloc] initWithImage:image]; searchField.leftView = iView; } } 

Он работает отлично. Но я беспокоюсь, что Apple может отклонить приложение. Я знаю, что это не частный API, но и это не полностью публично.

Есть ли у кого-нибудь приложение в App Store с таким кодом?

Вы не называете какой-либо частный API, поэтому я почти уверен, что этот код пройдет проверку AppStore. Обратите внимание, что ваш код не является будущим доказательством, возможно, что Apple изменит внутреннюю реализацию UISearchBar и ваш код может перестать работать. Наиболее надежным решением будет подкласс UITextField и развертывание собственного кода.

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

в большинстве случаев он не будет обнаружен яблоком. (слишком много приложений используют аналогичные методы для изменения UIControl), но вам нужно проверить версию iOS перед запуском этого кода, команда apple dev может изменить эту внутреннюю структуру в новых версиях iOS.

 if (ios > 5.0 && ios < 6.0 ) // your modifies here else // ....