UIButton addTarget 不适用于 iOS7,但适用于 IOS6
Posted
技术标签:
【中文标题】UIButton addTarget 不适用于 iOS7,但适用于 IOS6【英文标题】:UIButton addTarget doesn't work with iOS7,but works in IOS6 【发布时间】:2013-12-02 02:28:01 【问题描述】:显然,这段代码在 ios 6 中可以工作。顺便说一下,它在 iOS 7 中有问题。
我将 UIButton 添加到 UIPickerView 的每一行:
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view
UIButton *btnRow=[UIButton buttonWithType:UIButtonTypeSystem];
[btnRow addTarget:self action:@selector(touch:) forControlEvents:UIControlEventTouchUpInside];
btnRow.frame=CGRectMake(0, 0, 320, 30);
int tag= selfTextField.tag/10000 - 1;
[btnRow setTitle:[[pickerArray objectAtIndex:tag] objectAtIndex:row] forState:UIControlStateNormal];
return btnRow;
【问题讨论】:
编辑:重复***.com/questions/19266966/… 这是一个更好的副本,虽然没有真正的答案:***.com/questions/19245744/…。为什么不使用表格视图呢? 你的 addSubview:btnRow 方法在哪里? 一些 UITextFields 应该由用户选择,包括一些日期。所以,我使用 UIDatePicker 和 UIPickerView。 【参考方案1】:您不能在选择器视图行上放置按钮。所以我在 UIPickerView 上方添加了一个工具栏,并在其上添加了一个栏按钮项。我使用行号通过选择器执行所需的功能
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
....
//get the row number & Perform desired functionality
....
您将获得行号并使用它来执行所需的功能。
【讨论】:
但它在IOS6中可以工作。我只是想知道是什么导致了问题。 所需的功能对所选行进行签名并在 UITextFied 中显示所选行的内容。所以,delegate 功能并不能解决我的问题。另外,如何在 UIPickerView 上方添加工具栏并保持 UIPickerView 正常工作。在每一行添加工具栏?以上是关于UIButton addTarget 不适用于 iOS7,但适用于 IOS6的主要内容,如果未能解决你的问题,请参考以下文章
自定义 UIView:未调用 UIButton addTarget