自定义UIToolbar,苹果允许什么?

时间:2012-10-30 15:05:34

标签: ios uitoolbar

我希望将我的标准UIToolbar(带有基于文本的按钮的不透明黑色)转换为更加图形化的东西。可能类似于以下内容(取自Blackberry应用程序):

enter image description here

这会违反人机界面指南吗?我以前见过这种为UITabbar做过的定制,但从来没有为UIToolbar做过。如果我有一个EDIT按钮执行基本的EDIT任务,比如允许我删除表格中的一行。如果我有自己的EDIT图形,Apple会怎么想?

此外,不是创建我自己的UIToolbar或子类化UIToolbar并修改它以满足我的需要,我不能将一堆UIButton与自定义图形并排放在一行看起来像工具栏吗?

2 个答案:

答案 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部分:条形图 - >工具栏