我想自定义我的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?我已经看了很多地方,但似乎什么都没有用......
答案 0 :(得分:0)
我认为您不能将按钮的自定义视图设置为另一个按钮。按钮是复杂的对象,嵌套它们通常不起作用。
自定义视图属性应该用于装饰,而不是功能。您应该为UIBarButtonItem加载一个具有所需外观的自定义视图,并让它处理实际的按钮逻辑。
答案 1 :(得分:0)
您是否尝试使用UIImageView的自定义视图初始化它?如果它工作,您可以创建UIImageView,使其伪造一个经典的UIButton,如下所述:
How can I create a big, red UIButton with the iPhone SDK?
但更一般地说,从UI的角度来看,在“UIBarButtonItem”的地方使用经典的“UIButton”很奇怪:/
答案 2 :(得分:0)
请参阅我对this question的回答。
我认为最好避免在UIButton
内放置UIBarButtonItem
。他们或多或少地做同样的事情,并且BBI存在是有原因的 - 与UIButton相比它们是轻量级的,并且它们与UINavigationItems
的关系非常舒适。
如果您告诉我们,我认为我们可以提供更好的帮助 - 您要实现的总体目标是什么?这样我们就可以提供可行的解决方案。
答案 3 :(得分: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;