解决iOS11中UIToolbar无法点击问题

    xiaoxiao2023-08-21  186

    iOS11

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

    解决方法

    为了解决iOS11(与较低版本兼容)的问题,您只需要在UIToolBar被添加为UI层次结构的子视图之后,调用 layoutIfNeeded方法,UIToolbarContentView会降低到UIToolBar的第一个子视图,然后你就可以将所有的子视图添加到最顶层。

    UIToolbar *toolbar = [UIToolbar new]; [self addSubview: toolbar]; [toolbar layoutIfNeeded]; <here one can add all subviews needed>

    通过渲染可知,是因为上面有两层 view 挡住了,一个是_UIButtonBarStackView,另一个是_UIButtonBarStackView。这是 iOS11新增的特性,在UIToolbar初次布局完成后才会添加这两个视图。

    在实例化UIToolbar后,立即调用

    [toolbar layoutIfNeeded];

    随后再添加toolbar的子视图,这样就不会有问题了。

     

     

     

     

     

     

     

     

     

     

    最新回复(0)