我有一個tableviewcell與5個不同的單元格。每個視圖都有一個標籤,其中包含以下內容之一。 1個文本框,1個文本,視圖1,開關或1個滑塊。我正在嘗試在索引路徑中查找行的tableviewcell,以便我可以檢索用戶輸入的信息。以下是我對單元和不同開關的代碼。如果可能,我只需要知道如何實現這一點。謝謝(頁面)我在考慮只是標記元素,而不是爲行尋找單元格,這就是爲什麼您會看到標記代碼。如何獲得從數組填充的tableviewcell的索引路徑?
-(UITableViewCell *)listCell:(UITableView *)tableView IndexPath:(NSIndexPath*)indexPath
{
static NSString *textFieldIdentifier = @"textFieldCell";
static NSString *textViewIdentifier = @"textViewCell";
static NSString *switchIdentifier = @"switchCell";
static NSString *seekBarIdentifier = @"seekBarCell";
static NSString *datePickerIdentifier = @"datePickerCell";
//DBSectionDetailsTableViewCell *cell = (DBSectionDetailsTableViewCell *) [tableView dequeueReusableCellWithIdentifier:textViewIdentifier];
UITableViewCell *cell6 = [tableView dequeueReusableCellWithIdentifier:datePickerIdentifier];
results = [listArray objectAtIndex:[indexPath row]];
if([indexPath row] < listArray.count)
{
if (([[results objectAtIndex:2]isEqualToString:@"EditText"]))
{
DBSectionDetailsTableViewCell *cell2 = [tableView dequeueReusableCellWithIdentifier:textFieldIdentifier forIndexPath:indexPath];
cell2.titleLabel.text = [results objectAtIndex:1];
//title button
cell2.textField.tag = [indexPath row];
cell2.textField.delegate = self;
[cell2.textField addTarget:self action:@selector(textFieldDidEndEditing:) forControlEvents:UIControlEventTouchUpInside];
return cell2;
}
else if (([[results objectAtIndex:2]isEqualToString:@"EditTextLarge"]))
{
TextViewTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:textViewIdentifier forIndexPath:indexPath];
// cell = textFieldCell;
cell.titleLabel.text = [results objectAtIndex:1];
cell.textView.tag = [indexPath row];
cell.textView.delegate = self;
// [cell.textView addTarget:self action:@selector(textViewDidEndEditing:) forControlEvents:UIControlEventTouchUpInside];
return cell;
}
else if (([[results objectAtIndex:2]isEqualToString:@"Switch"]))
{
SwitchTableViewCell *cell3 = [tableView dequeueReusableCellWithIdentifier:switchIdentifier forIndexPath:indexPath];
// cell3 = switchCell;
cell3.titleLabel.text = [results objectAtIndex:1];
cell3.switchOutlet.tag = [indexPath row];
return cell3;
}
else if (([[results objectAtIndex:2]isEqualToString:@"SeekBar"]))
{
SeekBarTableViewCell *cell4 = [tableView dequeueReusableCellWithIdentifier:seekBarIdentifier forIndexPath:indexPath];
//cell4 = seekBarCell;
cell4.titleLabel.text = [results objectAtIndex:1];
cell4.slider.tag = [indexPath row];
return cell4;
}
else if (([[results objectAtIndex:2]isEqualToString:@"DatePicker"]))
{
DatePickerTableViewCell *cell5 = [tableView dequeueReusableCellWithIdentifier:datePickerIdentifier forIndexPath:indexPath];
//cell5 = datePickerCell;
cell5.titleLabel.text = [results objectAtIndex:1];
cell5.datePicker.tag = [indexPath row];
cell5.datePicker.delegate = self;
[cell5.datePicker addTarget:self action:@selector(datePickerDidEndEditing:) forControlEvents:UIControlEventTouchUpInside];
return cell5;
}
}
//UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
return cell6;
}
此外,tableview是動態的,當然是因爲tableviewcells正在由消費者在後端設置的任何東西填充。 – TheChef 2015-01-26 20:53:45
非常混亂。如果你有單元並想知道索引路徑,可以使用'indexPathForCell'。但是這聽起來有一個數組索引,並希望將其與索引路徑相關聯 - 這是數據源對象的責任。 – 2015-01-26 21:01:35
是的,理解...我試圖使用這樣的東西 NSIndexPath * newIndex = [NSIndexPath indexPathForRow:0 inSection:0]; DBSectionDetailsTableViewCell * cell2 =(DBSectionDetailsTableViewCell *)[listTable cellForRowAtIndexPath:newIndex]; 在我的「保存」功能,但我仍然返回「零/無」的一切。我認爲去按鈕標記的路線可能會更好,我只是想看看我是否可以使用NSIndex來實現我想要的,而不用做所有的標記和附加的函數調用等。 – TheChef 2015-01-26 21:19:02