Я не думаю, что эта информация доступна.Но это должно быть довольно легко получить при некотором тестировании.
Если вам нужна всего лишь UILabel на всей панели инструментов, я бы посоветовал просто добавить ее в UIToolbar
, то есть UIView
подкласс.Вам не нужны все функции UIBarButtonItem
в вашем случае ... только фон, который я предполагаю.
Затем установите UILabel.frame
(с нужными полями) + addSubview:
+ a UITextAlignmentCenter
должен делать работу!Плюс, возможно, также маска автоматического изменения размера с UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight
, если вы управляете ориентацией устройства ...
РЕДАКТИРОВАТЬ 1 :
Поскольку у этого предложения есть некоторые сомнения, я сделалбыстрый тест:
UILabel *label = [[[UILabel alloc] initWithFrame:CGRectMake(10, 0, 300, 44)] autorelease];
label.text = @"Hello world";
label.textAlignment = UITextAlignmentCenter;
label.textColor = [UIColor whiteColor];
label.shadowColor = [UIColor blackColor];
label.backgroundColor = RGBACOLOR(255, 0, 0, .3f);
[self.toolbar addSubview:label];
Вот результат:
РЕДАКТИРОВАТЬ 2 :
Теперь, когдаЯ запустил Xcode и написал некоторый код, который легко понять с помощью вашего основного вопроса.Немного изменив предыдущий код:
UILabel *label = [[[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, 44)] autorelease];
... same
[self.toolbar setItems:
[NSArray arrayWithObject:
[[[UIBarButtonItem alloc] initWithCustomView:label] autorelease]]];
приводит к этому:
Так что, как вы уже догадались, есть левое поле 12px, но пользовательские представленияне похоже, чтобы его размер соответствовал размеру, поэтому в этом случае нет правого поля ... если только вы не измените размер своего представления соответствующим образом.
РЕДАКТИРОВАТЬ 3 :
Если только вашей UILabel не нужен фон, вот что я, вероятно, сделал бы (для этого, в конце концов, UIBarButtonSystemItemFlexibleSpace
...) :
UILabel *label = [[[UILabel alloc] init] autorelease];
label.text = @"Hello world";
... same
[label sizeToFit];
[self.toolbar setItems:
[NSArray arrayWithObjects:
[[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
target:nil action:nil] autorelease],
[[[UIBarButtonItem alloc] initWithCustomView:label] autorelease],
[[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
target:nil action:nil] autorelease],
nil]];
Результат:
РЕДАКТИРОВАТЬ 4 :
Как сторона, после работы над UIToolbar
, 12px
является добавленным пробелом по умолчанию до кнопка.И я только что обнаружил забавный, проставки работают с отрицательными значениями! .То есть, если вам нужно 2 пикселя между двумя кнопками, просто добавьте -10px UIBarButtonSystemItemFixedSpace
... Handy!