Я работаю над проектом, который имеет uitableview с 3 строками в 1 разделе. Теперь я хотел бы, чтобы 1 из этих трех ячеек были динамическими по высоте. Во-первых, я даже не знаю, возможно ли это. Если это так, то я хочу сделать это! Я нашел очень полезное руководство, помогающее мне пройти через него, здесь . Я реализовал файлы StringHelper, которые он рекомендовал, и они отлично работают для одной ячейки, но когда есть несколько ячеек, у меня начинаются проблемы. Эта картинка иллюстрирует, что происходит, когда я сохраняю текст: alt text http://www.freeimagehosting.net/uploads/e7351da3ea.png
И, как вы можете видеть по любой причине, случайным образом вставляет симпатичный маленький арабский символ в начале.
Итак, вот код, с которым я работаю:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
NSString *label = [entree.notes/*putting entree.notes here may or may not be correct*/ length] == 0 ? kDefaultNoteLabel : aNote;
CGFloat height = [label RAD_textHeightForSystemFontOfSize:kTextViewFontSize] + 40.0;
return height;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue2 reuseIdentifier:CellIdentifier] autorelease];
cell.editingAccessoryType = UITableViewCellAccessoryDisclosureIndicator;
}
aNote = entree.notes;
NSString *label = [aNote length] == 0 ? kDefaultNoteLabel : aNote;
switch (indexPath.row) {
case 0:
cell.textLabel.text = @"Name";
cell.detailTextLabel.text = entree.title;
break;
case 1:
cell.textLabel.text = @"Date";
cell.detailTextLabel.text = [self.dateFormatter stringFromDate:entree.date];
break;
case 2:
//aNote = entree.notes;
if ([[cell.contentView subviews] count] > 0) {
id view = [[cell.contentView subviews] objectAtIndex:0];
UILabel *labelToSize = view;
[label RAD_resizeLabel:labelToSize WithSystemFontOfSize:kTextViewFontSize];
} else {
UILabel *cellLabel;
cellLabel = [label RAD_newSizedCellLabelWithSystemFontOfSize:kTextViewFontSize];
[cell.contentView addSubview:cellLabel];
[cellLabel release];
}
cell.textLabel.text = @"Notes";
cell.detailTextLabel.text = entree.notes;// description];
break;
}
return cell;
}
Где entree - это имя моего NSManaged Object, а title, date, notes - это атрибуты. Все, что мне нужно, это иметь возможность установить для ячейки 3 или атрибута notes динамическую высоту, чтобы при вводе большого объема текста эта ячейка и только эта ячейка перемещались, а все остальное оставалось неизменным. Как вы можете видеть, я пробовал кое-что, извиняюсь, если он стал немного грязным, но эта текущая настройка кода приводит к изображениям выше, что близко, но не совсем там. Это может быть просто быстрое решение, так что если кто-то может мне помочь, это будет очень признателен! Заранее спасибо