Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/115.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS11/Xcode 9 UIBarButtonItem问题_Ios_Uibarbuttonitem_Ios11_Xcode9_Clickable - Fatal编程技术网

iOS11/Xcode 9 UIBarButtonItem问题

iOS11/Xcode 9 UIBarButtonItem问题,ios,uibarbuttonitem,ios11,xcode9,clickable,Ios,Uibarbuttonitem,Ios11,Xcode9,Clickable,在我从Xcode 9构建应用程序后,UIBarbutton项对单击没有响应。它在Xcode 8上工作 显然,我们发现了下面这篇文章中描述的问题 问题是我添加了在帖子中解释的约束,但仍然不起作用。有人能看看我的代码,告诉我我做错了什么吗 UIImage* image = [UIImage imageNamed:@"test.png"]; CGRect frame = CGRectMake(0, 0, 30, 30); UIButton* someButton = [UIButton buttonW

在我从Xcode 9构建应用程序后,UIBarbutton项对单击没有响应。它在Xcode 8上工作

显然,我们发现了下面这篇文章中描述的问题

问题是我添加了在帖子中解释的约束,但仍然不起作用。有人能看看我的代码,告诉我我做错了什么吗

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];

决心。。原来是的

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

当前的解决方法是在添加子视图之前调用toolBar.layoutifneed

就你而言:

inputFieldView.layoutIfNeeded()
希望这能在下一个主要版本中得到修复