4

如何设置 UIBarButtonItem 的位置?就像,我想将它设置在 UIToolbar 的最右侧或最左侧,具体取决于状态。

谢谢你。

4

2 回答 2

18

您不会直接在UIToolbar中设置UIBarButtonItem的位置。相反,您定义了项目的顺序并在左侧或右侧放置了灵活的空间。

你可以做的是:

  • 创建要放置的 UIBarButtonItem(按钮 1)。
  • 创建一个 UIBarButtonItem 类型UIBarButtonSystemItemFlexibleSpace(按钮 2)。
  • 如果要将按钮放在左侧,请使用 (button 1) 和 (button 2) 创建一个数组,并使用setItems:animated:方法将其传递给 UIToolbar。
  • 如果要将按钮放在右侧,请使用 (button 2) 和 (button 1) 创建一个数组,并使用该setItems:animated:方法将其传递给 UIToolbar。
于 2010-04-24T19:44:38.440 回答
3

我希望它可以帮助你...

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];

链接解释了Bar Button Item方法和参数 https://developer.apple.com/library .....使用Fake Item 获取 Button 上的精确捏合位置...

于 2015-03-12T11:15:31.363 回答