2016-05-28 5 views
1

У меня есть два ViewControllers внутри контроллера панели вкладок. В построителе интерфейса я применил вставки изображений (5, 5, 5, 5) к значкам панели вкладок, чтобы получить их размеры, как я их хочу. Все выглядит великолепно, когда я изначально запускаю симулятор, но когда я перехожу к второму ViewController, оба значка панели вкладок автоматически изменяют размер по умолчанию (0, 0, 0, 0). Когда я вернусь назад, чтобы вернуться к первому ViewController, оба значка остаются в ловушке по умолчанию, без вставки.iOS Swift Tab Bar Значки вставляются в Runtime

Примечание. Мои изображения иконки являются .pdf-файлами в папке XCassets (заданы как один векторный коэффициент масштабирования). Я видел другие темы, которые предлагают «балансировать» вставки (5 сверху, -5 для нижней). Но это сжало бы изображение на 5 в сторону от вершины и STRETCH 5 в нижней части. Я не понимаю, как это сбалансировать размер изображения.

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

ответ

0

Чтение документации, UIBarItem (суперкласс UITabBarItem) обладает свойством imageInset, и вы можете получить доступ к панели вкладок детали через self.tabBarController.tabBar.items.

Не тестируя его самостоятельно, я думаю, что у вас может возникнуть проблема с сбросом вставки при изменении оттенка (из-за выбора).

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

В качестве альтернативы вы можете обнаружить, что просто настроить исходное изображение на желаемый окончательный внешний вид может быть проще.