我知道在stackoverflow上有很多类似的问题但我的有点不同。 我会用图像来展示它,因为它更容易理解。 使用这个代码,我从中获取 here,我得到了这个结果:
很容易看到屏幕上没有第二个按钮。
我尝试了UIToolbar
帧中的负数,但它们不起作用。我不需要任何标题,只能将这些按钮移到左侧。
答案 0 :(得分:5)
这是一种不同的方法。我创建了一个custom segmented control(github链接)作为包含几个按钮的UIView
。你可以用按钮之间的空格做同样的事情。
然后我将其添加为具有自定义视图的单个按钮项目。
CGRect frame = CGRectMake(320-width, 0, width, height);
[segControl.view setFrame:frame];
segControl.view.backgroundColor = [UIColor clearColor];
UIBarButtonItem *rightBtn = [[UIBarButtonItem alloc] initWithCustomView:segControl.view];
self.navigationItem.rightBarButtonItem = rightBtn;
结果能够更接近中间:
回答以下评论:是的,它是独立的。
答案 1 :(得分:0)
答案 2 :(得分:0)
UIToolbar *tool = [UIToolbar new];
tool.frame = CGRectMake(0, 0, 320, 42);
//tool.frame = self.navigationController.navigationBar.frame;
NSMutableArray *items = [[NSMutableArray alloc] initWithCapacity:7];
//space
UIBarButtonItem *btn3;
btn3 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:
UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
[items addObject:btn3];
[btn3 release];
//create setting button
UIButton *bttn=[[UIButton alloc]initWithFrame:CGRectMake(45, 0, 20, 30)];
[bttn setImage:[UIImage imageNamed:@"settings.png"] forState:UIControlStateNormal];
[bttn addTarget:self action:@selector(settings:) forControlEvents:UIControlEventTouchDown];
UIBarButtonItem *btn1=[[UIBarButtonItem alloc]initWithCustomView:bttn];
[items addObject:btn1];
[btn1 release];
UIBarButtonItem *btn = [[UIBarButtonItem alloc] init];
//Space
btn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:
UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
[items addObject:btn];
[btn release];
//Space
btn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:
UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
[items addObject:btn];
[btn release];
//Space
btn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:
UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
[items addObject:btn];
[btn release];
//Space
btn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:
UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
[items addObject:btn];
[btn release];
//Space
btn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:
UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
[items addObject:btn];
[btn release];
//Space
btn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:
UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
[items addObject:btn];
[btn release];
//Space
btn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:
UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
[items addObject:btn];
[btn release];
//Space
btn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:
UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
[items addObject:btn];
[btn release];
//pause Button
UIButton *bttn1=[[UIButton alloc]initWithFrame:CGRectMake(0, 0, 20, 30)];
[bttn1 setImage:[UIImage imageNamed:@"pause.png"] forState:UIControlStateNormal];
[bttn1 addTarget:self action:@selector(pause:) forControlEvents:UIControlEventTouchDown];
//UIBarButtonItem *btn2=[[UIBarButtonItem alloc]initWithCustomView:bttn1];
btnPause = [[UIBarButtonItem alloc]initWithCustomView:bttn1];
[items addObject:btnPause];
//[btn2 release];
//Space
btn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:
UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
[items addObject:btn];
[btn release];
//Space
btn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:
UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
[items addObject:btn];
[btn release];
//Space
btn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:
UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
[items addObject:btn];
[btn release];
//Next Button
btnNext = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:
UIBarButtonSystemItemPlay target:self action:@selector(next:)];
[items addObject:btnNext];
[tool setItems:items];
tool.barStyle =UIBarStyleDefault;
tool.backgroundColor = [UIColor clearColor];
//self.navigationItem.leftBarButtonItem.customView = tool;
//self.navigationItem.titleView = tool;
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:tool];
使用此方法在带有导航的工具栏中显示更多按钮。