从特定行获取 Picker 数据
Posted
技术标签:
【中文标题】从特定行获取 Picker 数据【英文标题】:Getting Picker data from a particular row 【发布时间】:2015-04-20 12:26:13 【问题描述】:当单击该单元格中的按钮时,我需要从每个单元格中获取选取器值。就像我单击黑天鹅单元格中的贪睡按钮一样,我应该在该单元格中获取选取器值。我正在从
获取行详细信息- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
int section = indexPath.section;
int row = indexPath.row;
NSLog(@"section: %d / row: %d", section, row);
感谢任何帮助。所有单元格都是自定义单元格。
【问题讨论】:
【参考方案1】:您可以在didSelectRowAtIndexPath
中的每个单元格中从pickerssigning a tag to picker 中获取值
pickerView.tag=indexPath.row;
然后在选择器委托中,您可以执行以下操作
if (pickerView.tag == 1)
//do stuff
else (pickerView.tag == 2)
//do other stuff
如果你也想在这里使用,你也可以使用 Switch。
【讨论】:
我的tableview是一个分组表如何在标记时处理部分?? 您可以相应地分配标签,例如对于第一节,您可以有 tag1000+index 就像对于第一节索引一,您可以设置 tag=1001 和 1002 等等 ....对于第 2 节,您可以将标签基值设置为 2000,那么这里的第二部分索引 1 将有标签 2001,以此类推【参考方案2】:你可以setTag
到你的UIButtons
,用indexpath.row
,如果它有多部分那么你可以设置你的逻辑,设置你的UIPickerView
使用静态标签,它不应该等于按钮标记,例如 Pickerview 的 999999 标记。
你可以通过addTarget:action:forControlEvent方法设置target来调用UIButton的实例方法,比如,
//You can set it in `cellForRowAtIndexPath` method
[yourSnoozbuton addTarget:self action:@selector(selectPickerTime:) forControlEvents:UIControlEventTouchDown];
在 Instance 方法中,您可以获取选择器值,例如,
-(IBAction)selectPickerTime:(UIButton *)sender
NSIndexPath *nowIndex = [NSIndexPath indexPathForRow:sender.tag inSection:0];
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:nowIndex];
UIPickerView *pickerview = [cell viewWithTag:999999];
NSString *str = [timeArray objectAtIndex:[pickerview selectedRowInComponent:0]];
//if multi sectioned, get button as per logic.
【讨论】:
以上是关于从特定行获取 Picker 数据的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Swift 从 CoreData sqlite 表中获取特定的行数据
单击仅使用 JavaScript 从 JSON 获取的表数据中的按钮时引用特定行
如何从 React Native Picker 获取值和标签名称?