1

我想自定义我的 UIBarButtonItem 的外观。这是我目前正在使用的代码:

UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(267, 6, 48, 30)];
[editButton setCustomView:button];  // editButton is the UIBarButtonItem

不幸的是,UIButton 没有被绘制,即它是 100% 透明的。我知道按钮在那里,因为当我在代码中添加一行时,如下所示:

UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(267, 6, 48, 30)];
[editButton setCustomView:button];  // editButton is the UIBarButtonItem
UIRectFill(button.frame);

我看到一个黑色方块出现在按钮应该出现的位置。

如何让我的 UIButton 被绘制?我已经看了很多地方,但似乎没有任何效果......

4

4 回答 4

0

我遇到了类似的问题;该按钮没有出现,并且在该空间中点击也没有任何作用。设置按钮的边界似乎是让它工作的魔法。

这是我用来设置右键的代码:

UIButton* addButton = [UIButton buttonWithType:UIButtonTypeCustom];
[addButton addTarget:self action:@selector(onAdd) forControlEvents:UIControlEventTouchUpInside];
[addButton setImage:[UIImage imageNamed:@"button_plus.png"] forState:UIControlStateNormal];
addButton.bounds = CGRectMake(0, 0, 30, 30);
UIBarButtonItem* addItem = [[UIBarButtonItem alloc] initWithCustomView:addButton];
navitem.rightBarButtonItem = addItem;
于 2012-03-30T13:51:57.810 回答
0

请参阅我对这个问题的回答。

我认为最好避免将 aUIButton放入 aUIBarButtonItem中。它们或多或少都在做同样的事情,BBI 的存在是有原因的——与 UIButtons 相比,它们是轻量级的,并且它们与UINavigationItems.

如果您让我们知道,我认为我们可以提供更好的帮助 - 您要实现的总体目标是什么?通过这种方式,我们可以帮助提供可行的解决方案。

于 2012-03-01T02:33:18.623 回答
0

您是否尝试使用 UIImageView 的自定义视图对其进行初始化?如果它有效,您可以创建 UIImageView,使其伪造经典的 UIButton,如下所述:

如何使用 iPhone SDK 创建一个大的红色 UIButton?

但更一般地说,从 UI 的角度来看,在“UIBarButtonItem”的位置有经典的“UIButton”是很奇怪的:/

于 2010-02-27T19:37:54.393 回答
0

我认为您不能将按钮的自定义视图设置为另一个按钮。按钮是复杂的对象,像这样嵌套它们通常是行不通的。

自定义视图属性应该用于装饰,而不是功能。您应该为 UIBarButtonItem 加载具有所需外观的自定义视图,并让它处理实际的按钮逻辑。

于 2010-02-27T13:27:48.557 回答