rickytan / RTRootNavigationController

Implicitly make every view controller has its own navigation bar
MIT License
2.15k stars 379 forks source link

设置大标题,返回按钮偏移 #192

Open Uonlyliveonce opened 6 years ago

Uonlyliveonce commented 6 years ago

我在viewDidLayoutSubviews方法中调用了[self.navigationController.navigationBar layoutSubviews];解决的,貌似大标题对自动布局有些影响,如果有遇到相同问题的可以这样解决,希望大神可以用更优雅的方式解决 default

rickytan commented 6 years ago

大标题是 iOS 11 才加的,目前还没有好好测试。你这个动图有点快,看不清干了啥

Uonlyliveonce commented 6 years ago

就是在大标题上拉的过程中返回按钮会有偏移,这个可以在viewDidLayoutSubviews方法中调用[self.navigationController.navigationBar layoutSubviews];解决,但是使用UIAlertViewController hidden之后还是会偏移过去,您看一下backButton的偏移 default

rickytan commented 6 years ago

系统中一般只有第一页才用大标题模式,好像没有二级页面还有大标题的。 另外,我自己试了下不会偏移,你的 barButtonItem 怎么生成的?

Uonlyliveonce commented 6 years ago

是在父类里重写的rt_customBackItemWithTarget方法,而且将其中的inset去掉还是会偏移

qq20180318-214451 2x
Uonlyliveonce commented 6 years ago

但是这个样子写就不会偏移了

qq20180318-220355 2x
rickytan commented 6 years ago

你这字体看着有点累啊…… 在生成 UIBarButtonItem 之前,先 [button sizeToFit] 一下试试?

[button setImageEdgeInsets:xxx];
[button sizeToFit];
return [[UIBarButtonItem alloc] initWithCustomView:button];