原因:Toolbar 在iOS11默认添加有_UIToolbarContentView,_UIToolbarContentView

_UIButtonBarStackView覆盖在自定义的按钮上面,导致按钮无响应。

解决方案:

1.为了解决iOS11(与较低版本兼容)的问题,您只需要在UIToolBar被添加为UI层次结构的子视图之后,

调用 layoutIfNeeded方法,UIToolbarContentView会降低到UIToolBar的第一个子视图,然后你就可以将所有的子视图添加到最顶层。

UIToolbar *toolbar = [UIToolbar new];

[self addSubview: toolbar];

[toolbar layoutIfNeeded];

2.在UIToolbar子类中加入这样一段代码

- (void)layoutSubviews {
    [super layoutSubviews];


    NSArray *subViewArray = [self subviews];

    for (id view in subViewArray) {
        if ([view isKindOfClass:(NSClassFromString(@"_UIToolbarContentView"))]) {
            UIView *testView = view;
            testView.userInteractionEnabled = NO;
         }
     }

}

 

相关文章:

  • 2021-10-10
  • 2022-12-23
  • 2022-01-13
  • 2021-10-10
  • 2022-12-23
  • 2022-01-13
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-04-12
  • 2022-12-23
  • 2021-10-04
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案