iOS11设置返回按钮

iOS自带的返回按钮有些坑,总是到达不到左边,领导点了以后就一直bb,然后照着网上的代码搞,添加一个空的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]  ];

记得以前是好使的最近一直有问题,后来对比发现iOS11的导航栏结构改了,

iOS11的:


BEE05BB4-6F2B-4BB9-A0F8-8166C028BBE8.png

多了一个在iOS9出现的那个盒子StackView

iOS10的:由于偏移50都超过屏幕了,


110F84DD-405F-4109-8961-60078759A6CF.png

结论:
使用偏移本来是可以的,但是iOS11导航栏把item放进盒子里面,不管你偏移多少左边始终有大概20的距离,偏移方法失效
解决方案:
https://github.com/zhangkun0625/UINavigation-SXFixSpace

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容