iOS11之前設(shè)置返回按鈕的文字偏移來使title為空,iOS11失效了。
[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -60)
forBarMetrics:UIBarMetricsDefault];
iOS11的導(dǎo)航欄結(jié)構(gòu)有比較大的改變,可以創(chuàng)建一個UIView的類目加入如下代碼,放入工程就可以使iOS11上返回按鈕title為空。(記得導(dǎo)入pod 'JRSwizzle')
+ (void)load
{
if (@available(iOS 11, *)) {
[NSClassFromString(@"_UIBackButtonContainerView") jr_swizzleMethod:@selector(addSubview:) withMethod:@selector(iOS11BackButtonNoTextTrick_addSubview:) error:nil];
}
}
- (void)iOS11BackButtonNoTextTrick_addSubview:(UIView *)view
{
view.alpha = 0;
if ([view isKindOfClass:[UIButton class]]) {
UIButton *button = (id)view;
[button setTitle:@" " forState:UIControlStateNormal];
}
[self iOS11BackButtonNoTextTrick_addSubview:view];
}
以上方法不要用了,iOS11.3之后會出現(xiàn)BUG。Push 或 Pop Animated為YES時內(nèi)存會無限暴漲直至崩潰。
可使用以下代碼替代:
[[UIBarButtonItem appearance] setTitleTextAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:0.1], NSForegroundColorAttributeName: [UIColor clearColor]} forState:UIControlStateNormal];