Прежде всего вопрос а зачем оно вам надо? Перед тем как менять жестко зафиксированные размеры элементов стоит подумать дважды.
Если же абстрагироваться это этого вопроса, то механизм довольно прост - нужно сделать своего наследника от UINavigationBar
, указать что именно он будет использоваться, а не стандартный бар. Ну а после этого уже можно поиграть с размерами и положением этого наследника. В принципе, у меня получилось передвинуть с помощью переопределения setCenter:
-(void) setCenter:(CGPoint)center{
center.x += kOffset;
[super setCenter:center];
}
Но хочу сразу предупредить, поскольку это вмешательство туда куда эппл изначально программистов не пускает, есть шанс огрести геморрой с поддержкой в разных версиях, у меня такое уже было - что-то привязывал к ресайзу какого-то из сабвью (найденного с помощью перебора массивом subviews), а в очередной версии операционки 6.1 это перестало работать т.к. то ли изменили иерархию видов, то ли просто забили и размер вида всегда был большим и просто кропался (уже не помню)