iOS自帶的返回按鈕有些坑,總是到達不到左邊,領導點了以后就一直bb,然后照著網(wǎng)上的代碼搞,添加一個空的item把寬度設為-10,代碼如下
[backButton addTarget:self action:@selector(backClick) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *negativeSpacer = [[UIBarButtonItem alloc] initWithBarButtonSystemItem: UIBarButtonSystemItemFixedSpace target:nil action:nil];
negativeSpacer.width = -50; //我都偏移50了,還是不行
viewController.navigationItem.leftBarButtonItems = @[ negativeSpacer, [[UIBarButtonItem alloc] initWithCustomView:backButton] ];
記得以前是好使的最近一直有問題,后來對比發(fā)現(xiàn)iOS11的導航欄結構改了,
iOS11的:

BEE05BB4-6F2B-4BB9-A0F8-8166C028BBE8.png
多了一個在iOS9出現(xiàn)的那個盒子StackView
iOS10的:由于偏移50都超過屏幕了,

110F84DD-405F-4109-8961-60078759A6CF.png
結論:
使用偏移本來是可以的,但是iOS11導航欄把item放進盒子里面,不管你偏移多少左邊始終有大概20的距離,偏移方法失效
解決方案:
https://github.com/zhangkun0625/UINavigation-SXFixSpace