Добавление UILabel к UIToolbar

96
задан 7 revs, 5 users 65%user8359 29 December 2017 в 08:19
поделиться

2 ответа

Взгляните в это

[[UIBarButtonItem alloc] initWithCustomView:yourCustomView];

По существу, каждый объект должен быть "кнопкой", но они можно инстанцировать с любым представлением, которого Вы требуете. Вот некоторый пример кода. Отметьте, так как другие кнопки обычно находятся на панели инструментов, распорные детали помещаются в каждую сторону кнопки заголовка, таким образом, это остается в центре.

NSMutableArray *items = [[self.toolbar items] mutableCopy];

UIBarButtonItem *spacer = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
[items addObject:spacer];
[spacer release];

self.titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(0.0 , 11.0f, self.view.frame.size.width, 21.0f)];
[self.titleLabel setFont:[UIFont fontWithName:@"Helvetica-Bold" size:18]];
[self.titleLabel setBackgroundColor:[UIColor clearColor]];
[self.titleLabel setTextColor:[UIColor colorWithRed:157.0/255.0 green:157.0/255.0 blue:157.0/255.0 alpha:1.0]];
[self.titleLabel setText:@"Title"];
[self.titleLabel setTextAlignment:NSTextAlignmentCenter];

UIBarButtonItem *spacer2 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
[items addObject:spacer2];
[spacer2 release];

UIBarButtonItem *title = [[UIBarButtonItem alloc] initWithCustomView:self.titleLabel];
[items addObject:title];
[title release];

[self.toolbar setItems:items animated:YES];
[items release];
128
ответ дан 3 revs, 3 users 73% 24 November 2019 в 05:32
поделиться

Одна из вещей, для которых я использую этот прием, состоит в том, чтобы инстанцировать UIActivityIndicatorView сверху эти UIToolBar, что-то, что иначе не было бы возможно. Например, здесь я имею UIToolBar с 2 UIBarButtonItem, FlexibleSpaceBarButtonItem, и затем другой UIBarButtonItem. Я хочу вставить UIActivityIndicatorView в UIToolBar между гибким пространством и заключительной (правой) кнопкой. Таким образом в моем RootViewController я делаю следующее,

- (void)viewDidLoad {
[super viewDidLoad];// Add an invisible UIActivityViewIndicator to the toolbar
UIToolbar *toolbar = (UIToolbar *)[self.view viewWithTag:767];
NSArray *items = [toolbar items];

activityIndicator = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 20.0f, 20.0f)];
[activityIndicator setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleWhite];    

NSArray *newItems = [NSArray arrayWithObjects:[items objectAtIndex:0],[items objectAtIndex:1],[items objectAtIndex:2],
                     [[UIBarButtonItem alloc] initWithCustomView:activityIndicator], [items objectAtIndex:3],nil];
[toolbar setItems:newItems];}
6
ответ дан 2 revs, 2 users 90% 24 November 2019 в 05:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: