[iOS_Dev] 调整间距---导航栏右边的按钮

来源:互联网 发布:好看的网络剧穿越剧 编辑:程序博客网 时间:2024/06/05 15:29
[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];}

0 0
原创粉丝点击