以编程方式设置UIBarButtonItem的位置

时间:2010-04-23 21:23:01

标签: iphone cocoa-touch positioning uibarbuttonitem

我如何设置UIBarButtonItem的位置?比如,我想把它设置在UIToolbar的最右边,或者根据状态设置在左边。

谢谢。

2 个答案:

答案 0 :(得分:18)

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

你能做的是:

  • 创建要放置的UIBarButtonItem(按钮1)。
  • 创建类型为UIBarButtonSystemItemFlexibleSpace的UIBarButtonItem(按钮2)。
  • 如果要将按钮放在左侧,请使用(按钮1)和(按钮2)创建一个数组,然后使用setItems:animated:方法将其传递给UIToolbar。
  • 如果要将按钮放在右侧,请使用(按钮2)和(按钮1)创建一个数组,然后使用setItems:animated:方法将其传递给UIToolbar。

答案 1 :(得分:2)

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

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.....使用项来获取按钮上的精确缩放位置...