iOS11 適配navigationbar backButton圖片不居中、backBarButtonItem、backIndicatorImage、

原作者 http://www.lxweimin.com/u/ea1477f79a5c
原文 http://www.lxweimin.com/p/232d529094aa

升級Xcode9 后適配 iOS11 navigationbar 需要以下幾個步驟


1.如果項目中使用過 setBackButtonTitlePositionAdjustment 方法,那就把這一行注釋掉。

//[[UIBarButtonItem appearance]setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -60) forBarMetrics:UIBarMetricsDefault];

2.設置 backBarButtonItem,初始化 title 為空的 UIBarButtonIte,賦給self.navigationItem.backBarButtonItem。

self.navigationItem.backBarButtonItem = [[UIBarButtonIte malloc] initWithTitle:@"" style:UIBarButtonItemStylePlain target:nil action:nil];

3.設置 backIndicatorImage 、backIndicatorTransitionMaskImage 的 image。該使用方法在 iOS11之前也常用。(我一直這么用,為了適配 iOS11我在現有的基礎上添加了上面的倆個步驟)

UIImage*image = [UIImageimageNamed:@"icon_back_black"];
image = [imageimageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
self.navigationController.navigationBar.backIndicatorImage = image;
self.navigationController.navigationBar.backIndicatorTransitionMaskImage = image;

備注:以上代碼沒必要每個viewcontroller都寫一遍,可以利用methodswizz,寫一次即可。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容