(0027)iOS 开发之调整导航条上BarButtonItem与屏幕边界的间距

来源:互联网 发布:脱水研报 知乎 编辑:程序博客网 时间:2024/06/10 07:37

       我们发现,在设置navigationItemleftBarButtonItemrightBarButtonItem时,用CustomView初始化UIBarButtonItem,不论怎么设置CustomViewframe,添加到导航条上之后总是和屏幕边界有一定的间距(5pix),如何自由调整这个间距呢?


初始化一个用于控制间距的UIBarButtonItem实例negativeSpacer,并设置negativeSpacerwidth属性的值,设为-5的时候,正好可以使按钮与屏幕边界值为0,以rightBarButtonItem情况为例 


        _rightBtn = [UIButtonbuttonWithType:UIButtonTypeCustom];

        _rightBtn.frame =CGRectMake(0,0,60,40);

        _rightBtn.titleLabel.font = [UIFontsystemFontOfSize:14.f];

        [_rightBtnsetTitleColor:hexColor(808080)forState:UIControlStateNormal];

        [_rightBtnsetTitle:@"全部已读"forState:UIControlStateNormal];

        [_rightBtnaddTarget:selfaction:@selector(clearAllUnreadMessage)forControlEvents:UIControlEventTouchUpInside];

        UIBarButtonItem *rightBarItem = [[UIBarButtonItemalloc]initWithCustomView:_rightBtn];

        

        UIBarButtonItem *negativeSpacer = [[UIBarButtonItemalloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpacetarget:nilaction:nil];


//width为负数时,相当于btn向右移动width数值个像素,由于按钮本身和边界间距为5pix,所以width设为-5时,间距正好调整 

// 0width为正数时,正好相反,相当于往左移动width数值个像素  


       negativeSpacer.width = -10;

       self.navigationItem.rightBarButtonItems = [NSArrayarrayWithObjects:negativeSpacer, rightBarItem,nil];




0 0
原创粉丝点击