Как установить заголовок UIToolBar?
Как установить заголовок UIToolBar таким образом, чтобы он выглядел так же, как заголовок в UINavigationBar?
Я попытался использовать кнопку с простым стилем, она выглядит нормально, но она будет подсвечена, когда я нажму на нее... Есть ли лучший способ установить заголовок в подробном представлении с разделенным видом?
Ответы
Ответ 1
Это то, что я использую, чтобы представить заголовок на панели инструментов, который не будет выделяться при нажатии:
#define UIColorFromRGB(rgbValue) [UIColor \
colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 \
green:((float)((rgbValue & 0xFF00) >> 8))/255.0 \
blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]
// choose whatever width you need instead of 600
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 600, 23)];
label.textAlignment = UITextAlignmentCenter;
label.backgroundColor = [UIColor clearColor];
label.shadowColor = UIColorFromRGB(0xe5e7eb);
label.shadowOffset = CGSizeMake(0, 1);
label.textColor = UIColorFromRGB(0x717880);
label.text = @"your title";
label.font = [UIFont boldSystemFontOfSize:20.0];
UIBarButtonItem *toolBarTitle = [[UIBarButtonItem alloc] initWithCustomView:label];
[label release];
Ответ 2
Это решает проблему подсветки, проблему с отключением и проблему с касанием.
Панель инструментов и titleButton были созданы в IB.
Заголовок обзора покрывается панелью инструментов. Поэтому поместите заголовок на панель инструментов.
self.titleButton.title = @"Order"; // myInterestingTitle
Он выглядит так:
![enter image description here]()
Отключить, чтобы предотвратить выделение, и не дать ему ответить на прикосновения.
self.titleButton.enabled=NO;
Затем он выглядит так: ![enter image description here]()
Он будет выглядеть отключенным, поэтому установите цвет для отключенного белого,
который имеет неявный альфа = 1,0.
Это эффективно отменяет "отключенный" вид.
[self.titleButton setTitleTextAttributes:
[NSDictionary dictionaryWithObject:[UIColor whiteColor]
forKey:UITextAttributeTextColor]
forState:UIControlStateDisabled ];
Вот что вы получите: ![enter image description here]()
Ответ 3
Я думаю, что это было бы намного чище:
UIToolbar *toolbar = [[UIToolbar alloc] initWithFrame:frame];
UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithTitle:@"Your Title"
style:UIBarButtonItemStylePlain
target:nil
action:nil];
UIBarButtonItem *spacer = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
target:nil
action:nil];
NSArray *items = [[NSArray alloc] initWithObjects:spacer, item, spacer, nil];
[toolbar setItems:items];
toolbar.userInteractionEnabled = NO;
Ответ 4
![enter image description here]()
- Поместите обычную "Rounded Rect Button" (UIButton) на панели инструментов (не "Item Button Button" )! Имейте в виду, что за сценой IB обертывает UIButton с помощью UIBarButtonItem. Именно поэтому вам нужно дважды щелкнуть по кнопке, чтобы перейти к свойствам UIButton (true для Xcode 4.2).
- Получить свойства UIButton. Когда вы нажмете первый раз, вы получите свойства "Свойства кнопки бар" (это именно то, что для вас автоматически создал IB). Теперь нажмите второй раз, вы попадете в свойства "Button" (также, когда вы выбрали UIButton, вы не можете изменять его размер и не можете видеть маркеры изменения размера).
- В свойствах Button Button задайте тип "Custom", чтобы удалить закругленную прямоугольную рамку вокруг кнопки (вам может потребоваться изменить размер кнопки в IB, чтобы обновить ее, прежде чем вы сможете увидеть разницу).
- В свойствах кнопки в разделе "Вид" снимите флажок "Включение пользователя".
Ответ 5
Используйте UIBarButtonItem в обычном стиле и дополнительно закройте панель инструментов в соответствующей области с UIView, который имеет четкий фон. Представление потребляет краны и скрывает их от элемента кнопки панели. Убедитесь, что вы правильно настроили маску авторезистировки.
Ответ 6
UILabel* title = [[[UILabel alloc] init] autorelease];
[title setBackgroundColor:[UIColor clearColor]];
[title setFont:[UIFont boldSystemFontOfSize:20]];
[title setTextAlignment:UITextAlignmentCenter];
[title setTextColor:[UIColor grayColor]];
[title.layer setShadowColor:[[UIColor colorWithWhite:1.0 alpha:0.5] CGColor]];
[title.layer setShadowOffset:CGSizeMake(0, 1)];
[title.layer setShadowRadius:0.0];
[title.layer setShadowOpacity:1.0];
[title.layer setMasksToBounds:NO];
[title setText:@"Sample Title"];
[title sizeToFit];
// [[[UIBarButtonItem alloc] initWithCustomView:title] autorelease]
Ответ 7
Вы можете снять флажок "Показывать касание при выделении" в "Конструкторе интерфейсов".