【问题标题】:Align buttons or space between buttons in NavigationBar programmatically以编程方式对齐 NavigationBar 中的按钮或按钮之间的空间
【发布时间】:2012-07-17 11:44:47
【问题描述】:

我已经通过情节提要界面创建了导航控制器,并以编程方式在导航栏上添加了 4 个按钮,但我不知道我应该如何证明它的合理性,请您帮助我!

这是图片:

这是我知道的按钮代码 我使用 rightBarButtonItems 但我不知道应该写什么!

 - (void)viewDidLoad
{
[super viewDidLoad];

  UIBarButtonItem *menuButton= [[UIBarButtonItem alloc] initWithTitle:@"Menu" style:UIBarButtonItemStyleDone  
       target:self action:@selector(menu:)];

UIBarButtonItem *yearButton= [[UIBarButtonItem alloc] initWithTitle:@"Year" style:UIBarButtonItemStyleDone
target:self action:@selector(year:)];
 UIBarButtonItem *weekButton= [[UIBarButtonItem alloc] initWithTitle:@"Week" style:UIBarButtonItemStyleDone 
 target:self action:@selector(week:)];
 UIBarButtonItem *reportButton= [[UIBarButtonItem alloc] initWithTitle:@"Report" style:UIBarButtonItemStyleDone 
  target:self action:@selector(report:)];

NSArray *buttons = [NSArray arrayWithObjects:menuButton,yearButton,weekButton,reportButton,nil];
self.navigationItem.rightBarButtonItems = buttons;
}

【问题讨论】:

  • 你试过为他们设置框架吗?
  • @Nitish 不,我不知道该怎么做,请你帮帮我!

标签: iphone objective-c ios storyboard


【解决方案1】:

在每个按钮之间添加灵活的间隔:

UIBarButtonItem *flexibleSpacer = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];

【讨论】:

  • 感谢我是否应该为此导入任何库,因为我收到 *flexibleSpacer 的错误:Redefinition of flexibleSpacer。
  • 不需要导入任何东西,但不要重复使用相同的名称。
  • 然后我写 UIBarButtonItem *flexibleSpacer1 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];但我收到警告说你使用了未使用的变量 flexibleSpacer1
  • @justin 这个答案是正确的,但我能想到的唯一能让这项工作更好的事情是将前两个按钮添加为 leftBarButtonItems 并将后两个按钮添加为 rightBarButtonItems 并仍在使用灵活的空间。 (仅当这不完全适合您时。
  • @MDT 我添加了警告图片,请检查一下
猜你喜欢
  • 1970-01-01
  • 2017-10-31
  • 2022-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多