Мне нужно представить мое табличное представление со списком из двух столбцов.Я прочитал некоторые связанные посты о создании сетки путем переопределения drawRect ( здесь ).Тем не менее, я ищу простой способ создать свою ячейку с IB в кончике, затем загрузить ее и вставить две ячейки в каждом ряду.Пример с drawRect не подходит, потому что он включает ручную настройку позиций.Мне просто нужно подтолкнуть эти две ячейки с некоторым автоматическим изменением размера, вот и все.Является ли это возможным?
Я ищу что-то вроде (в cellForRowAtIndexPath):
cell.contentView = emptyUIViewContainer;
[cell.contentView addSubview:FirstColumnUIView];
[cell.contentView addSubview:SecondColumnUIView];
Мне не нужно иметь два отдельных кончика для этих двух столбцов, потому что каждый столбец имеет одинаковый формат простос некоторыми другими данными.Есть идеи?
ОБНОВЛЕНИЕ: Интуитивно я пытаюсь сделать что-то вроде этого:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell1 = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell1 == nil) {
cell1 = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
// Configure the first cell.
cell1.textLabel.text = ...some text
// Configure the second cell
UITableViewCell *cell2 = [[UITableViewCell alloc] init];
cell2.textLabel.text = ...some text
//set row as container for two cells
UITableViewCell *twoColumnRowView = [[UIView alloc] init]; //initWithFrame:CGRectMake(0, 0, 200, 20)];
cell1.contentView.frame = CGRectMake(0, 0, 100, 20);
[twoColumnRowView addSubview:cell1];
cell2.contentView.frame = CGRectMake(100, 0, 100, 20);
[twoColumnRowView addSubview:cell2];
return twoColumnRowView; // cell;
}
Это просто сырой прототип, с которым я сейчас играю.Но во время выполнения происходит сбой кода с «Завершающим приложением из-за необработанного исключения« NSInvalidArgumentException », причина: '- [UIView setTableViewStyle:]: нераспознанный селектор, отправленный экземпляру"
ОБНОВЛЕНИЕ 2. Я изменил код для просмотраболее практичным.Странно, но после нескольких попыток я заставил приложение работать без сбоев, но со странным черным фоном во всех ячейках.Вот код:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *FirstCellIdentifier = @"FirstCellIdentifier";
static NSString *SecondCellIdentifier = @"SecondCellIdentifier";
// initialize first cell
UITableViewCell *cell1 = [tableView dequeueReusableCellWithIdentifier:FirstCellIdentifier];
if (cell1 == nil) {
cell1 = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:FirstCellIdentifier] autorelease];
}
//initialize second cell
UITableViewCell *cell2 = [tableView dequeueReusableCellWithIdentifier:SecondCellIdentifier];
if (cell2 == nil) {
cell2 = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:SecondCellIdentifier] autorelease];
}
cell1.textLabel.text = ...data
cell2.textLabel.text = ...data
UITableViewCell *twoColumnRowView = [[UITableViewCell alloc] init];
[twoColumnRowView addSubview:cell1];
//cell2.contentView.frame = CGRectMake(100, 0, 100, 20);
[twoColumnRowView addSubview:cell2];
return twoColumnRowView; // cell;
}
Я не повторно использую twoColumnRowView, но оба других делают.