iOS7中 navigationItem的左、右barButton 各向右、左偏离10个像素 (纠正方法}

iOS7中 navigationItem的左、右barButton 各向右、左偏离10个像素  有的时候需求会要求效果与iOS7以下版本相同,以下是解决方法,还是stackoverflow给力

http://stackoverflow.com/questions/18914812/how-to-edit-empty-spaces-of-left-right-uibarbuttonitem-in-uinavigationbar-in-io?answertab=active#tab-top


//    iOS7中 navigationItem的左、右barButton 各向右、左偏离10个像素 以下方法纠正
//    IOS7_OR_LATER是一个判断系统版本的宏 在这里不做解释
//    rightButton 是实际需要的barButton
    UIBarButtonItem *rightButton = [[UIBarButtonItem alloc]initWithCustomView:toMakeMealButton];
    if (IOS7_OR_LATER) {
        UIBarButtonItem *negativeSpacer = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
        negativeSpacer.width = -10;
        [self.navigationItem setRightBarButtonItems:[NSArray arrayWithObjects:negativeSpacer,rightButton, nil] animated:NO];
        [negativeSpacer release];
    }else{
        self.navigationItem.rightBarButtonItem = rightButton;
    }
    [rightButton release];


你可能感兴趣的:(ios7,stackoverflow,NavigationItem,BarButton,偏离10像素)