美文网首页
自定义UIToolBar,升级到ios 11 之后,点击没有任何

自定义UIToolBar,升级到ios 11 之后,点击没有任何

作者: c5550ea746f8 | 来源:发表于2017-12-21 16:49 被阅读39次

原因:Toolbar 在iOS11默认添加有_UIToolbarContentView,_UIToolbarContentView、_UIButtonBarStackView覆盖在自定义的按钮上面,导致按钮无响应。

解决方法:

一、改写layoutSubviews的UIToobar的子类,将UIToolbarContentView的userInteractionEnable设置为NO。

-(void)layoutSubviews{

[superlayoutSubviews];

NSArray*subViewArray=[selfsubviews];

for(id viewinsubViewArray){

if([view isKindOfClass:(NSClassFromString(@"_UIToolbarContentView"))]){

UIView*testView=view;testView.userInteractionEnabled=NO;

}

}

}

二、需要在UIToolBar被添加为UI层次结构的子视图之后,调用 layoutIfNeeded方法,将UIToolbarContentView降低到UIToolBar的第一个子视图,然后你就可以将所有的子视图添加到最顶层。

UIToolbar *toolbar = [UIToolbar new];

[self addSubview: toolbar];

[toolbar layoutIfNeeded];

相关文章

网友评论

      本文标题:自定义UIToolBar,升级到ios 11 之后,点击没有任何

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