导航栏中的 Barbutton 项目左栏按钮粘在左上角
Posted
技术标签:
【中文标题】导航栏中的 Barbutton 项目左栏按钮粘在左上角【英文标题】:Barbutton item in navigtion bar leftbar button got stick to the top left conrner 【发布时间】:2013-10-22 05:32:33 【问题描述】:bar button 的 y 原点为 0 到导航栏,x 为 0。但我想为 barbutton 项添加一些 y 位置。
UIBarButtonItem *barbutton;
barbutton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:self action:@selector(onbackbtnpressed:)];
[barbutton setWidth:30];
[barbutton setTintColor:KANEKA_BLUE_COLOR];
[barbutton setAccessibilityFrame:CGRectMake(10, 10, 30, 20)];
self.navigationItem.leftBarButtonItem = barbutton;
请告诉我如何设置 barbutton 框架或如何设置 bar button y 位置。
【问题讨论】:
【参考方案1】:实际上我已经设法以稍微不同的方式设置 y 原点,这可能是一个很大的过程,但它非常好。
我在 viewcontroller 中添加了一个工具栏,并设置了 bar 按钮项并隐藏了导航栏。它适用于所有 popover 控制器。
self.toolbar.hidden = NO;
self.contentSizeForViewInPopover = CGSizeMake(self.view.frame.size.width-100,self.view.frame.size.height-100);
self.navigationController.navigationBarHidden = YES;
[self.toolbar setTintColor:KANEKA_BLUE_COLOR];
[self.backbutton setTintColor:KANEKA_BLUE_COLOR];
【讨论】:
【参考方案2】:我对这个问题的看法 - 根据 ios 人机界面指南,不建议为导航栏上的栏按钮项目添加 y 间距。
我们可以通过为导航项设置一组按钮来更新x定位,如下所示:
UIBarButtonItem *fixedSpaceBarButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
[fixedSpaceBarButton setWidth:10];
UIBarButtonItem *barbutton;
barbutton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:self action:@selector(onbackbtnpressed:)];
[barbutton setWidth:30];
[barbutton setTintColor:[UIColor redColor]];
[barbutton setAccessibilityFrame:CGRectMake(10, 10, 30, 20)];
self.navigationItem.leftBarButtonItems = [NSArray
arrayWithObjects:fixedSpaceBarButton, barbutton, nil];
【讨论】:
以上是关于导航栏中的 Barbutton 项目左栏按钮粘在左上角的主要内容,如果未能解决你的问题,请参考以下文章
iOS 11 在 leftBarButtonItem 旁边的导航栏中显示 searchBar