搜索到一些解决方法,基本都是说 button 在设置图片时,图片原尺寸大于设置的frame时会失效,有的会添加一个 containerView 来解决。
经过测试,下面的方法可用,个人觉得应该是 iOS11 更加强调 AutoLayout 。
if(@available(iOS 11, *)) {
UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithCustomView:button];
[button mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(60);
make.height.mas_equalTo(40);
}];
self.navigationItem.rightBarButtonItem = item;
} else {
button.frame = CGRectMake(0, 0, 60, 40);
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:button];
}
网友评论