导航栏的UIBarButtonItem的位置调整,(需求来的太突然)

来源:互联网 发布:unity3d 动画系统 编辑:程序博客网 时间:2024/04/29 13:30

   

界面的导航栏距离边界感觉有点圆,然后就找了一下怎么修改间隙文字到边界的距离,果然找到了大笑

 UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];    /**     *  设置frame只能控制按钮的大小     */    btn.frame= CGRectMake(0, 0, 40, 44);    [btn addTarget:self action:@selector(buttonClicked) forControlEvents:UIControlEventTouchUpInside];    UIBarButtonItem *btn_right = [[UIBarButtonItem alloc] initWithCustomView:btn];    UIBarButtonItem *negativeSpacer = [[UIBarButtonItem alloc]                                        initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace                                        target:nil action:nil];    /**     *  width为负数时,相当于btn向右移动width数值个像素,由于按钮本身和边界间距为5pix,所以width设为-5时,间距正好调整     *  为0;width为正数时,正好相反,相当于往左移动width数值个像素     */    negativeSpacer.width = -5;     self.navigationItem.rightBarButtonItems = [NSArray arrayWithObjects:negativeSpacer, btn_right, nil]; 
只需要自己修改 一下即可,不过嘛,还是得做点什么,方便嘛!

#import <UIKit/UIKit.h>/** *  导航item的扩展 */@interface UIBarButtonItem (Extension)+ (UIBarButtonItem *)itemWithTarget:(id)target action:(SEL)action image:(UIImage *)image highImage:(UIImage *)highImage;@end


#import "UIBarButtonItem+Extension.h"@implementation UIBarButtonItem (Extension)/** *  创建一个item * *  @param target    点击item后调用哪个对象的方法 *  @param action    点击item后调用target的哪个方法 *  @param image     图片 *  @param highImage 高亮的图片 *  @return 创建完的item */+ (UIBarButtonItem *)itemWithTarget:(id)target action:(SEL)action image:(UIImage *)image highImage:(UIImage *)highImage{    UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];    [btn addTarget:target action:action forControlEvents:UIControlEventTouchUpInside];    //设置图片//    [btn setImage:[UIImage imageNamed:image] forState:UIControlStateNormal];//    [btn setImage:[UIImage imageNamed:highImage] forState:UIControlStateHighlighted];    [btn setImage:image forState:UIControlStateNormal];    [btn setImage:highImage forState:UIControlStateHighlighted];    // 设置尺寸    btn.size = CGSizeMake(40, 40);//    btn.size = btn.currentImage.size;    return [[UIBarButtonItem alloc] initWithCustomView:btn];}@end



0 0
原创粉丝点击