Попробовав несколько предложений из других ответов, которые не сработали, если я не использовал пользовательские представления или если все не было загружено, я, наконец, нашел способ установить ширину панели инструментов на основе ее элементов:
//Add bar items to toolbar first.
UIView* v = toolbar.subviews.lastObject;
float newWidth = v.frame.origin.x + v.frame.size.width;
//Set toolbar width
Вам нужно будет переопределить UIToolbar -setItems:
или иным образом обнаружить измененные кнопки для автоматического изменения размера.
Я включил эту функцию в мою библиотеку рефакторинга, es_ios_utils , чтобы установить правильный элемент элемента навигации с помощьюнесколько кнопок.В предыдущей ссылке см. UIToolbar +toolbarWithItems:
и UINavigationItem -setRightBarButtonItems
.