Я также столкнулся с аналогичной проблемой один раз.
Мое требование было,
1) Для того, чтобы создать TableView, который имеет заголовок и клетки.
2) Заголовок будет иметь 3 метки, под этими метками ячейка будет содержать соответствующие данные для соответствующих меток в заголовке.
Для достижения вышеуказанного требования я создавал свои метки в заголовке и на основе позиции и размера этикеток в заголовке я перерисовывал метки ячеек в соответствии с заголовками заголовков.
я реализовал вещь выше в методе делегата Tableview в - (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
и станет ассоциироваться метками каждой ячейки на основе позиции заголовка и размера внутри него.
Например -
-(void) tableView:(UITableView *) tableView willDisplayCell:(UITableViewCell *) cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
// customize the cell just before it will be displayed
// access section header
UIView *sectionHeader = [tableView headerViewForSection:indexPath.section];
// access section header label
UILabel *headerLeftLabel = (UILabel *)[sectionHeader viewWithTag:HEADER_LABEL_TAG];
// access cell's corresponding label which is to be aligned as the header's above label
UILabel *leftCellLabel = (UILabel *)[cell.contentView viewWithTag:CELL_LABEL_TAG];
// align/ reframe the cells label with the corresponding label in the header
[leftCellLabel setFrame: headerLeftLabel.frame];
// similar for other labels
}
Вы устанавливаете фрейм в cellForRowAtIndexPath? – Samir
нет, должен ли я это сделать? –
Я, наверное. Это не лучший способ его решить. Но как только я это сделал, так как не нашел решения. Также в режиме автовыброса не будет работать только установочный кадр, он может иногда не менять раму зрения. Попробуйте установить 'cell.titleLabel.translatesAutoresizingMaskIntoConstraints = YES; ' для просмотра, которое вы хотите изменить. Или же попробуйте найти его, используя автозапуск, если есть какой-либо способ? И скажите, если вы его нашли. :) – Samir