iOS--设置系统导航栏右上角按钮不显示问题

196 阅读1分钟

设置系统导航栏右上角按钮方法:

UIButton *rightBtn = [UIButton buttonWithType:UIButtonTypeSystem];
    [rightBtn setTitle:@"XXXXXXX" forState:UIControlStateNormal];
    [rightBtn setTitleColor:[UIColor colorWithRGB:@"#444444"] forState:UIControlStateNormal];
    rightBtn.titleLabel.font = [UIFont systemFontOfSize:14];
    [rightBtn addTarget:self action:@selector(buyHisAction) forControlEvents:UIControlEventTouchUpInside];
    UIBarButtonItem *rightBarBtn = [[UIBarButtonItem alloc] initWithCustomView:rightBtn];
    self.navigationItem.rightBarButtonItems = @[rightBarBtn];

此方法设置后在iOS10以上的系统中都可以显示正常,但唯独在iOS10系统上不显示按钮,原来是因为在iOS10上需要设置按钮的大小,只需加上一个frame的设置就可以使iOS10上正常显示:

    rightBtn.frame =CGRectMake(0, 0, 90, 44);

这个变化应该是系统内对导航栏重新定义引起的,如油需要可以参考这里的设置,问题很小,但是很不容易发现原因。