Существует ли способ иметь UIBarButtonItems на панели инструментов, растягивают себя равномерно?
Поместите элемент кнопки гибкого пробела между вашими UIBarButtonItems. Это довольно легко сделать в IB, посмотрите на нижнюю часть элементов управления.
Если вы хотите сделать это программно, этот код должен помочь:
UIBarButtonItem* button1 = [[UIBarButtonItem alloc] initWithTitle:@"Button1" style:UIBarButtonItemStyleBordered target:self action:@selector(button1Action)];
UIBarButtonItem* button2 = [[UIBarButtonItem alloc] initWithTitle:@"Button2" style:UIBarButtonItemStyleBordered target:self action:@selector(button2Action)];
UIBarButtonItem *flexibleSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
[myToolbar setItems:[NSArray arrayWithObjects:button1, flexibleSpace, button2, nil]];
Игнорировать ширину в предложении UIBarButtonItem; это неправильный подход, рекомендованный Apple, и он не будет работать, если вы захотите добавить дополнительные значки.
Правильный подход - добавить «гибкий пробел» (технически еще одну кнопку!) Между каждой кнопкой. Вы видите это в Интерфейсном Разработчике, или это может быть добавлено непосредственно в коде, если необходимо.
Ага. Создайте UIBarButtonItem
с помощью метода -initWithBarButtonSystemItem:
, используя UIBarButtonSystemItemF flexibleSpace
, и вставьте его между каждым из ваших фактических элементов панели инструментов. Например: [
UIBarButtonItem *flexSpace = [[UIBarButton alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace];
myToolbar.items = [NSArray arrayWithObjects:buttonOne,flexSpace,buttonTwo,flexSpace,buttonThree,nil];
[flexSpace release];