iOS11導航欄系統返回鍵箭頭偏移


自定義導航欄返回鍵有多重方式,系統返回鍵、左鍵、或者自定義導航欄等等;
下面介紹的是系統返回鍵自定義圖片、文字樣式
1、替換返回鍵圖片
UIImage*back = [[UIImage imageNamed:YLNavBackIconName] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
[UINavigationBar appearance].backIndicatorTransitionMaskImage = back;
[UINavigationBar appearance].backIndicatorImage = back;
2、文字替換
self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"返回" style:UIBarButtonItemStylePlain target:nil action:nil];

之前使用的好好地,產品不斷迭代更新,返回鍵樣式一直改,某一天突然發現返回箭頭不居中,向上偏移了。

然后嘗試各種方法讓其與文字居中,方法如下:
研究發現系統返回鍵尺寸:13*21,發現超過這個尺寸才會偏移,圖片尺寸調整比這個高度小,完美顯示。
但是我們的適老化,箭頭比較大,這個方法不行,繼續嘗試。

方案二:
UIImage*back = [[UIImage imageNamed:YLNavBackIconName] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
//隱藏系統的
[UINavigationBar appearance].backIndicatorTransitionMaskImage = [UIImage new];
[UINavigationBar appearance].backIndicatorImage = [UIImage new];
//設置新的
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:[back resizableImageWithCapInsets:UIEdgeInsetsMake(0, back.size.width, 0, 0)] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
解決。

方案三:
不需要返回文字,能解決箭頭居中
if (@available(iOS 11.0, *)) { //箭頭偏移
[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -10) forBarMetrics:UIBarMetricsDefault];
}
要不然只能自定義導航欄了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM