Как получить другое значение элемента управления из UITableViewCell? - PullRequest
2 голосов
/ 14 мая 2011

У меня есть одно сомнение в том, как получить значение другого элемента управления, когда мы выбираем строку или нажимаем на кнопку, имея собственный tableViewCell.Предположим, у меня есть ячейка TableView с TextField, ползунком и кнопкой.Кнопка имеет действие, используя:

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

Теперь я могу получить кнопку по ее методу действия.Мне нужно получить значение textField и значение ползунка при нажатии кнопки.

Один вариант - я создаю массив и сохраняю значения для этих двух элементов управления в этом массиве и управляю этим.Но я не думаю, что это правильный способ управления им.

Пожалуйста, перейдите ко мне, чтобы получить значение значения подпредставления UITableViewCell.

Спасибо

Ответы [ 2 ]

6 голосов
/ 14 мая 2011

При создании вашего текстового поля и ползунка, присвойте им постоянный тег, а затем добавьте в 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];
}
2 голосов
/ 14 мая 2011

Всякий раз, когда вы создаете подпредставления (кнопки, текстовые поля и т. Д.) Для своих UITableViewCell, не забудьте отметить их .

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

После того, как вы пометили, вы можете получить к ним доступ, используя метод ниже.

- (UIView *)viewWithTag:(NSInteger)tag

Когда вы выберете, вы можете получить подпредставления вашего UITableViewCell, используя ViewWithTag функцию UIView.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    {
        UITableViewCell *cell = [tableview cellForRowAtIndexPath:indexPath];
        UITextField* myTextField = [cell  viewWithTag:0];
        UILabel* myTextLabel     = [cell  viewWithTag:1];
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...