我希望将我的标准UIToolbar(带有基于文本的按钮的不透明黑色)转换为更加图形化的东西。可能类似于以下内容(取自Blackberry应用程序):
这会违反人机界面指南吗?我以前见过这种为UITabbar做过的定制,但从来没有为UIToolbar做过。如果我有一个EDIT按钮执行基本的EDIT任务,比如允许我删除表格中的一行。如果我有自己的EDIT图形,Apple会怎么想?
此外,不是创建我自己的UIToolbar或子类化UIToolbar并修改它以满足我的需要,我不能将一堆UIButton与自定义图形并排放在一行看起来像工具栏吗?
答案 0 :(得分:1)
苹果访问不会有任何问题,您不必将其他组件子类化为工具栏:
-(UIToolbar *) toolBarActive {
if( _toolBarActive == nil ) {
_toolBarActive = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 360, 320, 60)];
[_toolBarActive setBackgroundImage:[UIImage imageNamed:@"image.png"] forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault];
_toolBarActive.tintColor = [UIColor blackColor];
[_toolBarActive setBackgroundColor:[UIColor blackColor]];
UIBarButtonItem *flexibleSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
NSMutableArray *arrayItem = [[NSMutableArray alloc] init];
[arrayItem addObject:flexibleSpace];
[arrayItem addObject:self.buttonItem1];
[arrayItem addObject:flexibleSpace];
[arrayItem addObject:self.buttonItem2];
[arrayItem addObject:flexibleSpace];
[arrayItem addObject:self.buttonItem3];
[arrayItem addObject:flexibleSpace];
[arrayItem addObject:self.buttonItem4];
[arrayItem addObject:flexibleSpace];
[_toolBarActive setItems:arrayItem animated:YES];
}
return _toolBarActive;
}
例如buttonItem1定义为:
- (UIBarButtonItem *) buttonItem1 {
if( _buttonItem1 == nil ) {
_uttonItem1 = [[UIBarButtonItem alloc] initWithCustomView:self.button1];
[_buttonItem1 setEnabled:YES];
[_buttonItem1 setBackgroundVerticalPositionAdjustment:100.0f forBarMetrics:UIBarMetricsDefault];
}
return _buttonItem1;
}
和button1定义为:
- (UIButton *) button1 {
if( _button1 == nil ) {
_button1 = [[UIButton alloc] initWithFrame:CGRectMake(5, 5, 50, 50)];
[_button1 addTarget:self action:@selector(addNewImage) forControlEvents:UIControlEventTouchUpInside];
[_button1 setImage:[UIImage imageNamed:@"image.png"] forState:UIControlStateNormal];
}
return _button1;
}
答案 1 :(得分:0)
我认为您必须确保在定制时遵循苹果指南。否则他们会拒绝。
您可以看到工具栏指南here部分:条形图 - >工具栏