美文网首页
iOS 11 后如何自定义返回按钮

iOS 11 后如何自定义返回按钮

作者: Show_Perry | 来源:发表于2017-10-16 18:32 被阅读237次

iOS 11后自定义返回按钮会偏右,使用UIBarButtonSystemItemFixedSpace已经无效,这是由于iOS 11后使用约束布局导致。

解决办法:自定义 UINavigationBar例如ZHNavigationBar

#import <UIKit/UIKit.h>

@interface ZHNavigationBar : UINavigationBar

@end
#import "ZHNavigationBar.h"

@implementation ZHNavigationBar

-(void)layoutSubviews
{
    [super layoutSubviews];
    CGFloat systemVersion = [[[UIDevice currentDevice] systemVersion] floatValue];
    if (systemVersion >=11) {
        for (UIView *subview in self.subviews) {
            if ([NSStringFromClass([subview class]) containsString:@"ContentView"]) {
                subview.layoutMargins = UIEdgeInsetsMake(subview.layoutMargins.top, 0, subview.layoutMargins.bottom, subview.layoutMargins.right);
            }
        }
    }
    
}

如果是使用storyboard则使navigationBarClassZHNavigationBar,如下图所示:

屏幕快照 2017-10-16 18.23.57.png

如果使用代码,则在初始化时使用:

UINavigationController *nav = [[UINavigationController alloc]initWithNavigationBarClass:

相关文章

网友评论

      本文标题:iOS 11 后如何自定义返回按钮

      本文链接:https://www.haomeiwen.com/subject/xmlluxtx.html