如何从UITableViewCell获取其他控制值?

时间:2011-05-14 07:11:10

标签: iphone uitableview custom-cell

我有一个疑问,当我们选择一行或点击按钮时如何获得其他控件的值,同时具有自定义tableViewCell。 假设我有一个带有TextField,Slider和按钮的TableView Cell。按钮有以下操作:

btn.tag = indexPath.row;
[btn addTarget:self action:@selector(buttonTapped:) forControlEvents:UIControlEventTouchUpInside];

现在我可以获得其动作方法的按钮了。我需要在按钮上点击textField的值和滑块的值。

一个选项是我创建一个数组并在该数组中存储这两个控件的值并对其进行管理。但我不认为这是管理它的正确方法。

请导航我以当前的方式获取UITableViewCell子视图的值。

由于

2 个答案:

答案 0 :(得分:6)

在创建文本字段和滑块时,为它们提供一个常量标记,然后添加到单元格的contentView

textfield.tag= TEXTFIELDTAG; //TEXTFIELDTAG = 100 or any other constant
[cell.contentView addSubview:textfield];

然后在你的buttonTapped:方法

-(void)buttonTapped:(id)sender
{

    int row = ((UIButton*)sender).tag;
    NSIndexPath* indexpath = [NSIndexPath indexPathForRow:row inSection:0]; // in case this row in in your first section
    UITableViewCell* cell = [table cellForRowAtIndexPath:indexPath];
    UITextField* textfield = [cell.contentView viewWithTag:TEXTFIELDTAG];
}

答案 1 :(得分:2)

每当您为UITableViewCell创建子视图(按钮,文本字段等)时,请不要忘记标记

myTextField.tag = 0;
myTextLabel.tag = 1; 
[cell addSubview:myTextField];
[cell addSubview:myTextLabel];

标记后,您可以使用以下方法访问它们。

- (UIView *)viewWithTag:(NSInteger)tag

当您选择时,您可以使用ViewWithTag的{​​{1}}函数获取UITableViewCell的子视图。

UIView