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

原因: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];

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容