[iOS_Dev]调整间距---导航栏右边的按钮
//显示导航栏右边的按钮
- (void)showCustomNavigationRightButtonWithTitle:(NSString *)aTitle image:(UIImage *)aImage hightlightImage:(UIImage *)hImage
{//重写父类方法
//右边按钮
UIButton *rightBtn = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 51, 41)];
CGSize imageSize = CGSizeMake(aImage.size.width, aImage.size.height);
UIEdgeInsets imageEdgeInsets = UIEdgeInsetsMake(rightBtn.frame.size.height/2-imageSize.height/2, rightBtn.frame.size.width/2-imageSize.width/2,
rightBtn.frame.size.height/2-imageSize.height/2, rightBtn.frame.size.width/2-imageSize.width/2);
rightBtn.imageEdgeInsets = imageEdgeInsets;
/**
* 设置frame只能控制按钮的大小
*/
if(aTitle)
{
[rightBtn setTitle:aTitle forState:UIControlStateNormal];
[rightBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
rightBtn.titleLabel.font = [UIFont systemFontOfSize:15];
}
[rightBtn setImage:aImage forState:UIControlStateNormal];
if(hImage)
{
[rightBtn setImage:hImage forState:UIControlStateHighlighted];
}
//导航栏右边按钮
UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithCustomView:rightBtn];
//调整间距
UIBarButtonItem *navigationSpacer = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
/**
* width为负数时,相当于rightButton往 右移动width数值个像素,由于按钮本身和边界间距为5pix,所以width设为-5时,间距正好调整为0;
* width为正数时,相当于rightButton往 左移动width数值个像素
*/
navigationSpacer.width = -17; //间距减小17pix
[rightBtn addTarget:self action:@selector(onNavigationRightButtonClicked:) forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.rightBarButtonItems = [NSArray arrayWithObjects:navigationSpacer,rightButton, nil];
rightBtn.backgroundColor = [UIColor yellowColor];
[navigationSpacer release];
[rightBtn release];
[rightButton release];
}
[iOS_Dev] 调整间距---导航栏右边的按钮
最新推荐文章于 2024-01-16 09:16:33 发布