Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.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
Ios UIPickerview中的UIButton没有响应_Ios_Objective C_User Interface_Uibutton_Uipickerview - Fatal编程技术网

Ios UIPickerview中的UIButton没有响应

Ios UIPickerview中的UIButton没有响应,ios,objective-c,user-interface,uibutton,uipickerview,Ios,Objective C,User Interface,Uibutton,Uipickerview,我在UIPickerview中有一个自定义行视图,如下所示 - (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view { UIView *vw = [[UIView alloc] initWithFrame:CGRectMake(0, 0, pickerView.frame.si

我在UIPickerview中有一个自定义行视图,如下所示

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view
{
  UIView *vw = [[UIView alloc] initWithFrame:CGRectMake(0, 0, pickerView.frame.size.width, 30)];
  UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, pickerView.frame.size.width, 30)];
  [btn addTarget:self action:@selector(filtercategory) forControlEvents:UIControlEventTouchUpInside];
  btn.showsTouchWhenHighlighted = YES;
  [btn setImage:[UIImage imageNamed:@"longmp"] forState:UIControlStateNormal];
  [vw addSubview:btn];
  return vw;
}
未调用方法
filtercategory
。我寻找解决办法。但我无法得到

即使是高亮显示的
也不起作用

pickerview看起来像

添加了UiButton,因为它是纯白色的图像,所以我尝试了不同的图像来确认

如何使UIButton做出响应?

试试看

[btn setUserInteractionEnabled:YES];
编辑

如果您希望用户在UIPickerView中滚动到当前项目后选择该项目,则
UIActionSheet
可以帮助您。可以帮助您在
UIPickerView
顶部添加
UIToolBar


您只需在UIToolBar中添加UIBarButtonim,iOS用户就会觉得它更自然。

请确保有两件事:

1) 由于您希望处理按钮单击,因此此委托函数中不提供:

-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row
inComponent:(NSInteger)component
2) 我对按钮的框架有疑问:

[[UIButton alloc] initWithFrame:CGRectMake(0, 0, pickerView.frame.size.width, 30)];
确保按钮位于控件的活动区域。我的经验是,如果控件超出父控件的边界,则它不会接收事件


3) 请尝试。

如果有任何建议,我们将不胜感激。@CW0007007,因为要求用户在选择行后必须单击该行。尽管如此,这对我来说没有意义。选取器视图就是,你选取值,然后发生一些事情。你不选择一行,然后点击一个按钮!!!!如果他们错过了点击,该行就会按应有的方式滚动到另一行。。。在我看来,您可能需要重新考虑您的方法。因为要求是用户在选择行后必须单击该行。我不能使用didSelectRow方法。按钮位于视图的框架下。我可以在行的视图中看到按钮的图像;t设置图像,然后查看是否所有内容都显示在其位置?从您调用[pickerview setUserInteractionEnabled:YES]?嗨,修好了吗?我也面临这个问题。。。UIPickerView对于行视图似乎是“只读”的,它似乎只允许使用pick,但不允许输入