Iphone 你如何从一个UIBarbuttonite中删除样式?
在Iphone 你如何从一个UIBarbuttonite中删除样式?,iphone,ios,cocoa-touch,uibarbuttonitem,uitoolbar,Iphone,Ios,Cocoa Touch,Uibarbuttonitem,Uitoolbar,在UIToolbar内部使用自定义图形时,程序会自动将图形变为白色并应用内部阴影。如何防止这种自动样式设置并使用自定义图形逐字记录 这是通常的做法: UIImage *buttonImage = [UIImage imageNamed:@"myImage.png"]; UIButton *myButton = [UIButton buttonWithType:UIButtonTypeCustom]; [myButton setImage:buttonImage forState:UI
UIToolbar
内部使用自定义图形时,程序会自动将图形变为白色并应用内部阴影。如何防止这种自动样式设置并使用自定义图形逐字记录
这是通常的做法:
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];
如果这没有帮助,请显示用于初始化工具栏和按钮项的代码好吗?下面是我创建的一个类,它继承了基于图像的UIBarButtonim:
#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
“继承自
uibarbuttonim
”是“可以传递给任何接受uibarbuttonim
”的同义词,但无论如何,这是一个好主意!为了方便起见,你甚至可以把它作为一个类别。头文件在哪里?(我是一个noob)我使用界面生成器来构建我的工具栏。。。问题:专业人士是否因为界面生成器太有限而使用代码构建视图?@Jojo如果你想微调某些东西,那么最好通过编程而不是在IB中创建。IB非常适合简单的默认视图和子视图,但我建议至少构建一些没有它的东西;这是学习和真正理解IntrfceBldr“幕后”情况的最佳方式。