Подтвердить что ты не робот

Как установить заголовок UIToolBar?

Как установить заголовок UIToolBar таким образом, чтобы он выглядел так же, как заголовок в UINavigationBar?

Я попытался использовать кнопку с простым стилем, она выглядит нормально, но она будет подсвечена, когда я нажму на нее... Есть ли лучший способ установить заголовок в подробном представлении с разделенным видом?

4b9b3361

Ответ 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

Вы можете снять флажок "Показывать касание при выделении" в "Конструкторе интерфейсов".