ios6中
ios7中
上面两个图分别是在ios6和ios7环境下,UIBarButtonItem的情况。
这里所有的UIBarButtonItem都用了
- (id)initWithBarButtonSystemItem:(UIBarButtonSystemItem)systemItem target:(id)target action:(SEL)action;
方法进行初始化代码如下- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
UIBarButtonItem *fixedSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil ];
fixedSpace.width = 5.0f;
UIBarButtonItem *fixibleSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil ];
UIBarButtonItem *stop = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemStop target:nil action:nil];
UIBarButtonItem *action = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:nil action:nil];
UIBarButtonItem *compose = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCompose target:nil action:nil];
NSArray *items = [NSArray arrayWithObjects:
fixibleSpace,
stop,
fixibleSpace,
action,
fixibleSpace,
compose,
nil];
UIToolbar *toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0.0f, 220, 44.0f)];
toolBar.backgroundColor = [UIColor blackColor];
[toolBar setItems:items];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:toolBar]; }
return self;
}
如果UIBarButtonItem用以下方法初始化
- (id)initWithImage:(UIImage *)image style:(UIBarButtonItemStyle)style target:(id)target action:(SEL)action;
那么,只要设置UIBarButtonItem的width属性,就可以调整过来来。
但是用
- (id)initWithBarButtonSystemItem:(UIBarButtonSystemItem)systemItem target:(id)target action:(SEL)action;
方法初始化,是无法对width属性进行设置的。请教下大神,除了改用UIImage初始化之外,如何解决这个偏移的问题。
另外你试试这个方法建立UIBarButtonItem
UIImage*image1 = [UIImage imageNamed:@"toubuanniu1.png"];
UIButton*buttonback = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 20, 20)];
[buttonback setBackgroundImage:image1 forState:UIControlStateNormal];
[buttonback addTarget:self action:@selector(vip) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem*rightButton = [[UIBarButtonItem alloc] initWithCustomView:buttonback];
self.navigationItem.rightBarButtonItem = rightButton;