У меня есть Navbar со следующим:Дистанционные кнопки NavBar так кнопка находится рядом с названием
слева: Стрелка назад со словом «назад» весь путь к левому
право: 2 бар кнопки все пути к правому
центра: текст заголовка
Я хочу добавить третью кнопку к кнопкам пары справа (слева от этих кнопок), но я хочу, чтобы пространство между эта новая кнопка и другие кнопки, чтобы эта новая кнопка обнималась в правой части заголовка. Я попытался использовать FixedSpace BarButtonItem. Вот что у меня есть до сих пор:
UIBarButtonItem* space = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:self action:nil];
space.width = 160;
UIBarButtonItem* thirdButton = [[UIBarButtonItem alloc] initWithImage:myImage style:UIBarButtonItemStylePlain target:self action:@selector(action)];
NSMutableArray* buttons = [self.navigationItem.rightBarButtonItems mutableCopy];
//index 0 & 1 are the buttons that are already there
[buttons setObject:space atIndexedSubscript:2];
[buttons setObject:button atIndexedSubscript:3];
[self.navigationItem setRightBarButtonItems:buttons];
Выполнение этого действительно создает пространство между третьей кнопкой и другими кнопками. Проблема в том, что название может быть динамическим, и оно не всегда является центром из-за этого фиксированного пространства. Добавление фиксированного пространства вправо приводит к тому, что заголовок смещается влево и выглядит странно в зависимости от размера заголовка. Мне нужен способ выяснить позицию названия и как долго он будет. Есть ли способ сделать это? Что-то вроде navBar.title.width
и navBar.title.origin
, так что я могу выяснить, сколько очков осталось от права навигационной панели до названия?
Возможно, было бы лучше установить 'titleView' в пользовательское представление с меткой для названия и кнопкой, которую вы хотите. – rmaddy