在选择器视图上未按下按钮

Posted

技术标签:

【中文标题】在选择器视图上未按下按钮【英文标题】:button not getting pressed on picker view 【发布时间】:2012-11-20 11:02:52 【问题描述】:

我在选择器的委托方法中添加一个按钮作为行方法的视图。但是在 ios4.0 中按钮没有被按下,它在 iOS5.0 及更高版本上工作正常。

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view 
 
NSArray *__autoreleasing views = [[NSBundle mainBundle] loadNibNamed:@"PickerRowView" owner:self options:nil]; 
self.pickerDataView = [views lastObject]; 
self.labelBtn = (UIButton *) [pickerDataView viewWithTag:101]; 
[self.labelBtn addTarget:self action:@selector(labelBtnPressed:)forControlEvents:UIControlEventTouchUpInside]; 
return pickerDataView;



此代码在 iOS5 及更高版本上运行良好,但在 iOS4.0 上运行良好。谁能告诉它为什么会发生??

【问题讨论】:

pickerData 视图,我添加为行视图包含一个按钮,该按钮没有被按下,因此它的动作选择器在 iOS4.0 中没有被触发 你确定在 iOS4 中,self.labelBtn 不是 nil 吗? @iVishal 检查 self.labelBtn = (UIButton *) [pickerDataView viewWithTag:101];然后 self.labelBtn 这有任何参考 some thing.means 有参考... 是的,当然,相同的代码在 iOS5 及更高版本上运行良好。在 iOS4.0 中,当我按下按钮时,它的文本会突出显示,但它的动作不会被调用。 @iOS-Deveoper 是的,它有参考,我刚刚检查过...0x6a92730 【参考方案1】:

只需检查没有其他视图与您的按钮视图重叠,这是您面临的唯一问题。因此,请尝试找出重叠的透明视图,如果可能,请将代码发送给我们,以便我们为您提供最好的服务。

【讨论】:

选择器视图是滚动视图的子视图,没有选择器视图的视图..并且按钮在 iOS5 上工作正常,如果有重叠问题,那么它也不会在 iOS5.0 上工作。好吧,我不得不改变我的设计,但我仍然想知道为什么在 iOS4 及以下版本中没有按下按钮。我已经在问题中发布了代码。 Vishal,让我做一个示例代码,然后将所需的 url 转发给您,以便您解决问题。 嘿 Vishal,由于我的日程安排很紧,我会花一点时间为您提供样品,但同时帮我一个忙,而不是在滚动视图中添加您的选择器视图,您应该这样做你的窗户......我希望它一定会帮助你...... 你好 Mohit..谢谢你花一些时间来解决我的问题。我会尝试你的解决方案。再次感谢:)

以上是关于在选择器视图上未按下按钮的主要内容,如果未能解决你的问题,请参考以下文章

使用可变数组中的值填充选择器视图

无法强制选择器在按钮按下时显示

用户按下按钮时弹出日期选择器[重复]

Xamarin 表单选择器确定或取消按钮按下检测

按下完成按钮时,PickerView 不会关闭

如何为图像选择器选择多个 (2-5) 图像然后作为图像视图返回?