Ios UIPickerview中的UIButton没有响应
我在UIPickerview中有一个自定义行视图,如下所示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
- (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,但不允许输入