iOS UIBarButtonItem问题

项目中有段代码,是用来设置导航栏上按钮的,iOS11上显示正常,iOS10不显示

- (void)viewDidLoad {
    UIBarButtonItem *clearBtn = [self getBarButtonItemWithTitleStr:@"清空" Sel:@selector(didClickClearButton:)];
    self.navigationItem.rightBarButtonItems = @[clearBtn];
}

- (UIBarButtonItem *)getBarButtonItemWithTitleStr:(NSString *)titleStr Sel:(SEL)sel{
    
    UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
    [btn setTitle:titleStr forState:UIControlStateNormal];
    [btn setTitleColor:UIColorFromRGB(0x999999) forState:UIControlStateNormal];
    btn.titleLabel.font = TT_MEDIUM_FONT(16);
    [btn addTarget:self action:sel forControlEvents:UIControlEventTouchUpInside];
    //btn.size = CGSizeMake(23, 23);
    //[btn sizeToFit];
    UIBarButtonItem *btnItem = [[UIBarButtonItem alloc] initWithCustomView:btn];
    return btnItem;
}

主要问题就在注释的那两行代码那里
可以看到这里使用的是自定义的view来初始化的UIBarButtonItem,然后自定义view并没有设置frame!!!
可能是iOS11的时候,如果不设置系统SDK会默认给添加上,所以iOS11并没有什么问题,
但是要考虑兼容性的话,这里还是要把这两行给添加上

    btn.size = CGSizeMake(23, 23);
    [btn sizeToFit];

也就是给costomView一个指定的frame,这样不管是什么系统版本,都不会出问题了,
这里是review代码的bug,这里记录一下

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容