从 uitableviewcell 获取文本输入
Posted
技术标签:
【中文标题】从 uitableviewcell 获取文本输入【英文标题】:take text input from uitableviewcell 【发布时间】:2011-05-26 12:46:14 【问题描述】:我正在开发一个应用程序,我需要使用分段表格视图从用户那里获取文本输入。 我从来没有使用表格视图从用户那里获取文本输入。 请看图片了解击球手。
我试过这个In-place editing of text in UITableViewCell?
但这并没有完全满足我想要的。
当我使用以下代码时,我得到的输出与上图不同。
UITextField *txtField=[[UITextField alloc]initWithFrame:CGRectMake(45, 0, cell.frame.size.width, cell.frame.size.height)];
txtField.autoresizingMask=UIViewAutoresizingFlexibleHeight;
txtField.autoresizesSubviews=YES;
[txtField setBorderStyle:UITextBorderStyleRoundedRect];
[txtField setPlaceholder:@"Type Data Here"];
if (cell == nil)
cell.accessoryType = UITableViewCellAccessoryNone;
[cell addSubview:txtField];
参见问题 3 和 5 的答案。
谢谢。
【问题讨论】:
为什么您发布的链接不符合要求?请更详细地解释一下您要实现的目标... @sergio:嗨,当我使用链接中给出的代码来解决我的查询时,我看不到与我在我的问题中发布的图像相同的行为。这就是我发布问题的原因。 你能解释一下行为上有什么不同吗?您能否也发布您用于tableView:cellForRowAtIndexPath
的确切代码,这将有很大帮助...
@sergio :查看已编辑的问题。
【参考方案1】:
您需要将UITextField
添加到内容视图对应的单元格中,其中您需要文本字段。
您可以通过查看cellForRowAtIndexPath:
中的单元格indexpath.section
和indexpath.row
来选择所需的单元格
例子:
if(indexPath.section == CELL_SECTION)
if(indexpath.row == CELL_ROW_INDEX)
UITextField *txtField=[[UITextField alloc]initWithFrame:CGRectMake(5, 5, 320, 39)];
txtField.autoresizingMask=UIViewAutoresizingFlexibleHeight;
txtField.autoresizesSubviews=YES;
txtField.layer.cornerRadius=10.0;
[txtField setBorderStyle:UITextBorderStyleRoundedRect];
[txtField setPlaceholder:@"Type Data Here"];
[cell.contentView addSubView:textField];
【讨论】:
@iPhonePrg :嗨,我使用了与我第一次尝试相同的代码,但此代码的问题是它添加了简单的文本字段,它的行为与我在我的问题中建议的不同。 这条线是做什么的? txtField.autoresizingMask=UIViewAutoresizingFlexibleHeight; 最后一行应该是[cell.contentView addSubview:txtField];
【参考方案2】:
第一件事
你需要创建一个UITableViewCell
的子类。
该课程将有一个 TextField(TF) 作为属性 访问那个 TF
为那个 TF 设置标签 while 初始化它。
在委托方法中
tableView:celForRowAtIndexPath:
通过标签使用方法 tf = 获取该 TF
[单元格 viewWithTag:YOUR_TAG];
现在您可以随心所欲。
现在假设你想要这个值 在这个方法之外,还有 两种方式
一个。创建一个全局变量并在其中存储值
b.先通过cellforRowAtIndexPath的tableView方法找到cell,重复步骤4和5
【讨论】:
【参考方案3】:您需要一个自定义的UITableViewCell
,其中包含UITextfield
。您可以为每个单元格的textField
设置tag
以识别它们。如果您想对文本或其他内容进行一些验证,您还可以实现UITextFieldDelegate
。然后您可以根据标签获取textfield
的值。
【讨论】:
以上是关于从 uitableviewcell 获取文本输入的主要内容,如果未能解决你的问题,请参考以下文章
如何快速从 UITableViewCell 动态中获取文本字段的值?
如何从 UITableView 中的 UITableViewCells 中的 UITextFields 中获取文本并将它们放入数组中(Swift 3)?
如何从 UITableViewCell 输入新视图? (当表格视图从 .plist 获取其信息时)
从 UITableView 获取 UITextField 文本