IOS7下的UIBarButtonItem偏移了10pt,相信这是大家都不想要的效果,解决的方法就是增加一个UIBarButtonSystemItemFixedSpace item,但是在7.1开始,只添加一个fixedSpaceItem运行会挂掉,肿么办,兼容的解决方法就是再在前面增加一个空的item,代码如下:


UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithCustomView:button]; //要添加到navgationBar上的item


if ([UIDevice iOS7]){

UIBarButtonItem *plain = [[UIBarButtonItem alloc] initWithTitle:nil style:UIBarButtonItemStylePlain target:nil action:NULL];//解决7.1会挂掉的问题

UIBarButtonItem *fix = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:NULL];

fix.width = -10;//纠正10pt的偏移

self.navigationItem.rightBarButtonItems = @[plain,item,fix];//就是这样,完美!

} else {

self.navigationItem.rightBarButtonItem = item;

}