有没有办法在工具栏中使用违反HIG的自定义UIBarButtonItem?

时间:2015-05-15 04:59:13

标签: ios cocoa-touch uibarbuttonitem uitoolbar

这些是UIToolBar图标和条形按钮图标的人机界面指南。

我想要的东西并不完全遵循HIG。

基本上我想要一个坚固的圆形和扁平的UIButton,文字覆盖。 (但是,出于显而易见的原因,我不希望文本与图像分开)。

这可以完成吗?

您可以使用.cornerradius = 5.0绘制UIBarButtonItem吗?我只相信UIButton

或者你可以使用蒙面的png图像作为UIBarButtonItem,使用tintcolor来更改图像蒙版,并在顶部添加一些叠加文字吗?

或者您是否需要伪造/模仿创建UIToolbar,并在UIView底部创建一个44像素的lightGrey View

如何实现这一目标,是否会因违反HIG而被拒绝?

2 个答案:

答案 0 :(得分:1)

您可以随时使用₹&添加UIToolBar。由于UIBarButtonItem继承自UIBarButtonItem&然后到UIBarItem,您可以修改最少的功能。

使用以下代码在NSObject中启动您的商品 这样,您就可以将自定义UIButton作为UIToolBar

要更改不同状态的按钮背景颜色,您可能必须按住按钮状态才能在数组中切换,并根据状态更改颜色

以下是新的代码:

UIToolBarItem

现在是按钮的目标方法

UIToolbar *toolbar = [[UIToolbar alloc]initWithFrame:CGRectMake(0,55, self.view.bounds.size.width, 55)];
toolbar.tintColor = [UIColor redColor];
[self.view addSubview:toolbar];

NSMutableArray *tempArray = [[NSMutableArray alloc]init];
buttonStateArray = [[NSMutableArray alloc]init];
for(int i =0; i < 3; i++){
    UIButton *tempButton = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 100, 30)];
    tempButton.backgroundColor = [UIColor redColor];
    tempButton.layer.cornerRadius = 8;
    tempButton.layer.borderWidth = 2;
    tempButton.tag = i;
    tempButton.layer.borderColor = [UIColor blackColor].CGColor;
    [tempButton setTitle:[NSString stringWithFormat:@"Hello %d", i] forState:UIControlStateNormal];
    [tempButton addTarget:self action:@selector(displayTapped:) forControlEvents:UIControlEventTouchUpInside];
    [tempArray addObject:[[UIBarButtonItem alloc]initWithCustomView:tempButton]];

    [buttonStateArray addObject:[NSNumber numberWithBool:NO]];
}

[toolbar setItems:tempArray];

}

此处更新了屏幕

enter image description here

答案 1 :(得分:0)

您可以使用条形按钮的initWithCustomView:初始化程序。