2010-12-01 3 views
1

Я хочу поместить значок рядом с названием моей навигационной панели. Я бы предпочел не реализовывать его как пользовательский titleView, потому что тогда мне нужно создать пользовательский заголовок для каждого контроллера, который я установил в стек (и у меня довольно глубокая вложенность). Я добавляю в настоящее время UIImageView для навигации. Моя проблема заключается в том, чтобы точно рассчитать горизонтальную позицию этого значка. Это зависит от ширины кнопки «Назад», которая имеет каждый раз другой заголовок. Как рассчитать эту рамку с обратной кнопкой? Похоже, что Google-поиск не принесет никаких разумных результатов.добавление значка между кнопкой «Назад» и заголовком навигационной панели

Заранее спасибо

ответ

0

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

CGSize s = [label sizeWithFont:_font]; 
+0

Вы имеете в виду взять ширину ярлыка кнопки кнопки. Я думал, что есть более стандартный подход ... – 2010-12-08 15:13:11

0

Я столкнулся с этим же вопросом , Мое решение состояло в том, чтобы добавить значок как один из элементов leftBarButtonItems после гибкого пространства. Это подталкивает его к названию.

UIBarButtonItem *space = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil] autorelease]; 
UIView *icon = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"titleIcon"]] autorelease]; 
UIBarButtonItem *iconItem = [[[UIBarButtonItem alloc] initWithCustomView:icon] autorelease]; 
NSArray *items = [NSArray arrayWithObjects: space, iconItem, nil]; 
self.navigationItem.leftBarButtonItems = items; 
self.navigationItem.leftItemsSupplementBackButton = YES; 

Это не совсем то же самое, как создание пользовательских titleView, однако, двумя способами: (1) текст заголовка остается в центре, если это возможно, со значком слева от него, а не центрирования название и значок вместе ; и (2) когда вы нажимаете новый вид на стек, значок не скользит влево с заголовком; вместо этого он исчезает, как и другие элементы кнопки бара.

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

Смежные вопросы