Установить позицию UIBarButtonItem программно - PullRequest
4 голосов
/ 24 апреля 2010

Как мне установить позицию UIBarButtonItem? Например, я хотел бы установить его либо в самом правом углу панели инструментов UIToolbar, либо в самом левом, в зависимости от состояния.

Спасибо.

Ответы [ 2 ]

18 голосов
/ 24 апреля 2010

Вы не устанавливаете непосредственно положение UIBarButtonItem в UIToolbar . Вместо этого вы определили порядок элементов и оставили свободное место слева или справа.

Что вы можете сделать, это:

  • Создайте элемент UIBarButton, который вы хотите разместить (кнопка 1).
  • Создайте элемент UIBarButtonItem типа UIBarButtonSystemItemFlexibleSpace (кнопка 2).
  • Если вы хотите поместить кнопку слева, создайте массив с помощью (кнопка 1) и (кнопка 2) и передайте его на UIToolbar с помощью метода setItems:animated:.
  • Если вы хотите поместить кнопку справа, создайте массив с помощью (кнопка 2) и (кнопка 1) и передайте его на UIToolbar с помощью метода setItems:animated:.
3 голосов
/ 12 марта 2015

Надеюсь, это поможет вам ...

UIToolbar* keyboardDoneButtonView = [[UIToolbar alloc] init];
[keyboardDoneButtonView sizeToFit];

UIBarButtonItem* PrevButton = [[UIBarButtonItem alloc]  initWithBarButtonSystemItem:105 target:nil  action:nil]; //<
UIBarButtonItem*  NextButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:106  target:nil action:nil]; //>
UIBarButtonItem* doneButton = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStyleBordered target:self action:@selector(doneClicked:)];

UIBarButtonItem* flexSpace = [[UIBarButtonItem alloc]  initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
UIBarButtonItem *fake = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStylePlain target:nil action:nil] ;

[keyboardDoneButtonView setItems:[NSArray arrayWithObjects: PrevButton,fake, NextButton,fake,flexSpace,fake,doneButton,nil] animated:YES];

Ссылка объясняет Элемент панели кнопок Методы и аргументы https://developer.apple.com/library..... Используйте Поддельный Элемент, чтобы получить точное положение при нажатии кнопки ...

...