2011-12-22 2 views
1

У меня есть очень простой код здесьUIBarButtonSystemItemCamera не сосредоточены на UIToolbar

[mImagePickerToolBar setBarStyle:UIBarStyleBlackTranslucent]; 
[mImagePickerToolBar sizeToFit]; 
UIBarButtonItem *spaceItem1 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; 
UIBarButtonItem *spaceItem2 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; 

UIBarButtonItem *cameraItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCamera target:self action:@selector(captureBarItemPressed:)]; 

NSArray *items = [NSArray arrayWithObjects: spaceItem1, cameraItem, spaceItem2, nil]; 

[mImagePickerToolBar setItems:items animated:NO]; 

на мой UIToolbar элемент камеры не по центру вообще, видеть на картинке, по сравнению с домашней кнопкой его немного правый , почему это так и как его центрировать?

enter image description here

+1

Ваша кнопка находится в центре, но в UIBarButtonItem изображение попадает в центр кнопки, но стиль кнопки является понятным, поэтому он выглядит так. Вам нужно сделать свой стиль кнопки рамкой, чтобы показать изображение кнопки в центр. – Gypsa

+0

Изменение стиля на грани приводит к изменению вида кнопки камеры, т. Е. С границами вокруг него ... есть ли способ для меня иметь простой вид, т. Е. Без границ вокруг него, а вид элемента сосредоточен на UIToolBar? – deimus

+0

Если я перейду к отображению пользовательского изображения камеры, так же, как и значок системной камеры ... будет ли это рассматриваться как нарушение Руководства по интерфейсам Apple? – deimus

ответ

0
[self.navigationController setToolbarHidden:NO]; 
toolbar = [[UIToolbar alloc] init]; 
toolbar.barStyle = UIBarStyleBlackOpaque; 
[toolbar sizeToFit]; 
toolbar.frame = CGRectMake(0, 436, 320, 44); 
UIBarButtonItem *spaceItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil]; 
spaceItem.width = 130.0; 
UIBarButtonItem *cameraItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCamera target:self action:@selector(captureBarItemPressed:)]; 
NSArray *items = [NSArray arrayWithObjects: spaceItem, cameraItem, nil]; 
[toolbar setItems:items]; 
[self.navigationController.view addSubview:toolbar]; 

Это работает для меня. Пожалуйста, убедитесь, что на вашей стороне

+0

Что вы идете? Его вообще не ясно ... – deimus

+0

Точка гибкого пространства такова, что вам не нужны жесткие размеры разметки кода - я уверен, что проблема с пользователями возникает в другом месте. – jrturton

+0

спасибо за обновление сейчас ясно – deimus

2

Гибкие пространства должно работы. На мой взгляд, это ошибка в iOS. Вы можете сами убедиться, высмеивая это в построителе интерфейса.

Вот кнопка Окаймленный:

enter image description here

А вот кнопка обычная:

enter image description here

Он даже не выстраивались в пределах своей области выбора.

+0

yup, я также думаю, что это мешок ... временно я сделал это с фиксированными пространствами ... +1 – deimus

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