我们都知道在使用系统导航栏的leftBarButtonItem和rightBarButtonItem的时候,我们自己给的位置坐标是没有用的,这两个按钮是系统定义好的,位置也是定义好的。那么我们会发现,如果直接使用系统的leftBarButtonItem和rightBarButtonItem,他们距离屏幕边缘的距离是很大的,效果图如下:
这样的效果有可能觉得离得屏幕边缘太远了,更多的可能希望效果是这样的:
那么这样的效果怎么实现呢,下面给出实现代码:
设置leftBarButtonItem:
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:self.playButton];
UIBarButtonItem *negativeSpacer = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
negativeSpacer.width = -20;
self.navigationItem.rightBarButtonItems = @[negativeSpacer,self.navigationItem.rightBarButtonItem];
设置rightBarButtonItem:
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:self.backButton];
UIBarButtonItem *negativeSpacer = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
negativeSpacer.width = 20;
self.navigationItem.leftBarButtonItems = @[negativeSpacer,self.navigationItem.leftBarButtonItem];