在UIToolbar
中使用UIBarButtonItem
中的自定义图形时,程序会自动将图形变成白色并应用内部阴影。如何防止这种自动造型并逐字使用我的自定义图形?如何从UIBarButtonItem中删除样式?
2
A
回答
1
这是怎么回事通常会做:
UIImage *buttonImage = [UIImage imageNamed:@"myImage.png"];
UIButton *myButton = [UIButton buttonWithType:UIButtonTypeCustom];
[myButton setImage:buttonImage forState:UIControlStateNormal];
[myButton setImage:buttonImage forState:UIControlStateHighlighted];
UIBarButtonItem *myBtnItem = [[UIBarButtonItem alloc] initWithCustomView:myButton];
[myButton addTarget:self action:@selector(someSelector:) forControlEvents:UIControlEventTouchUpInside];
[myBtn setFrame:CGRectMake(someX, someY, someWidth, someHeight)];
[self.toolbar setItems:[NSArray arrayWithObjects:someBtnItemOne, myBtnItem, someBtnItemThree, nil]];
[myBtnItem release];
如果这并不帮助,可以请你告诉您使用初始化工具栏和按钮项目的代码?
1
这里有一类我创建了一个从继承的UIBarButtonItem这是基于图像:
#import "XXBarButtonImageItem.h"
@implementation XXBarButtonImageItem
- (id)initWithFrame:(CGRect)frame
image:(UIImage*)image
backgroundImage:(UIImage*)bgImage
{
_button = [UIButton buttonWithType:UIButtonTypeCustom];
[_button setFrame:frame];
self = [super initWithCustomView:_button];
if (self)
{
if (image)
[_button setImage:image forState:UIControlStateNormal];
if (bgImage)
[_button setBackgroundImage:bgImage forState:UIControlStateNormal];
}
return self;
}
- (id)initWithFrame:(CGRect)frame
image:(UIImage*)image
backgroundImage:(UIImage*)bgImage
target:(id)target
action:(SEL)selector
{
self = [self initWithFrame:frame image:image backgroundImage:bgImage];
if (self)
{
[_button addTarget:target action:selector forControlEvents:UIControlEventTouchUpInside];
}
return self;
}
- (void)dealloc
{
[super dealloc];
[_button release];
}
- (void)addTarget:(id)target action:(SEL)selector forControlEvents:(UIControlEvents)controlEvents
{
[_button addTarget:target action:selector forControlEvents:controlEvents];
}
- (void)setImage:(UIImage *)image forState:(UIControlState)state
{
[_button setImage:image forState:state];
}
- (void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state
{
[_button setImage:image forState:state];
}
@end
相关问题
- 1. 如何从UIBarButtonItem中删除CustomView?
- 2. 如何从文本中删除样式
- 3. 如何删除样式?
- 4. 从UIBarButtonItem中删除徽章子视图
- 5. 从动态删除样式?
- 6. 删除UIBarButtonItem图像
- 7. iPhone:按下按钮时如何从UIBarButtonItem中删除发光(亮)?
- 8. 删除样式
- 9. 从div标签中删除样式css
- 10. 从表中删除样式表内
- 11. 从q元素中删除样式
- 12. 从ASP.NET DataList中删除border-collapse样式
- 13. 从元素中删除css样式
- 14. 从下拉列表中删除样式
- 15. 从布局中删除样式表
- 16. 从输入字段中删除样式
- 17. 如何从TLF中的FlowElement中删除样式?
- 18. 如何从GAS中的对象中删除样式属性
- 19. CKEditor从样式下拉菜单中删除样式预览
- 20. tinymce:从样式属性中删除css样式
- 21. 如何从RadioButtonlist控件中删除移动jQuery样式?
- 22. 如何从窗口中删除WS_EX_TOPMOST样式?
- 23. 如何从标签中删除样式属性?
- 24. 如何从样式表中删除某些CSS属性?
- 25. 我如何才能从授权中删除样式文件夹
- 26. 如何使用jQuery从DIV中删除高度样式?
- 27. 如何从文本中删除CSS样式
- 28. 如何使用jQuery从元素中删除所有样式?
- 29. XSLT如何从div和td标签中删除样式
- 30. 如何从SpannableString中删除范围样式
我使用Interface Builder来构建我的工具栏...问题:这样做的利弊建造他们的代码视图,因为Interface Builder的太有限? – JoJo
@Jojo如果你想微调某些东西,那么最好是以编程方式创建它,而不是在IB中。 IB很适合简单的默认视图和子视图,但我会建议至少在没有它的情况下构建一些东西;它是学习和真正理解IntrfceBldr“幕后”发生的最好方法。 “从UIBarButtonItem'继承的” – chown