2017-10-16 135 views
0

UIBarbutton项目不响应点击我建我的应用程序后,在Xcode 9.及其对Xcode的8iOS11/Xcode的9的UIBarButtonItem问题

工作显然发现有如下这篇文章所描述的问题。( UIBarButtonItem not clickable on iOS 11 beta 7?

问题是我添加了约束,如在帖子中解释,仍然不会工作..可以看看我的代码,并告诉我我做错了什么?

UIImage* image = [UIImage imageNamed:@"test.png"]; 
CGRect frame = CGRectMake(0, 0, 30, 30); 
UIButton* someButton = [UIButton buttonWithType:UIButtonTypeInfoLight]; 
[someButton setImage:image forState:UIControlStateNormal]; 
[someButton setFrame:frame]; 
[someButton setShowsTouchWhenHighlighted:YES]; 
[someButton addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside]; 

NSLayoutConstraint * widthConstraint = [someButton.widthAnchor constraintEqualToConstant:30]; 
NSLayoutConstraint * HeightConstraint =[someButton.heightAnchor constraintEqualToConstant:30]; 
[widthConstraint setActive:YES]; 
[HeightConstraint setActive:YES]; 

UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithCustomView:someButton]; 
self.toolbar.items = [NSArray arrayWithObjects:item, nil]; 

回答

0

已解决..原来是a UIToolbar issue

这是iOS 11上的一个已知错误。UIToolbar子视图不会获取触摸事件,因为工具栏的某些内部视图未正确设置。

当前的解决方法是在添加子视图之前立即调用toolBar.layoutIfNeeded()

你的情况:

inputFieldView.layoutIfNeeded() 

希望这将得到固定的下一个主要版本。