Я использую UITableViewCellStyleValue2
и UITableViewStyleGrouped
.
Давайте начнем с некоторого кода (он не завершен на 100%, но я попытался включить код, необходимый для расшифровки того, что я делаю, и, возможно, делаю неправильно):
#define CELL_FONTSIZE 15.0f
CGSize textSizeValue2 = {207.0f, 9999.0f};
if ([value isEqual: CELL_4]) {
CGSize size = [cell4String sizeWithFont:[UIFont boldSystemFontOfSize:CELL_FONTSIZE] constrainedToSize:textSizeValue2 lineBreakMode:UILineBreakModeWordWrap];
size.height += CELL_HEIGHT; // top and bottom margin
result = MAX(size.height, 44.0f); // at least one row
Для этой конкретной ячейки результат для высоты получается равным 214 как для 3,0, так и для 3,1
.
Вот код для ячейки:
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue2 reuseIdentifier:CellIdentifier] autorelease];
}
cell.selectionStyle = UITableViewCellSelectionStyleNone;
cell.detailTextLabel.lineBreakMode = UILineBreakModeWordWrap;
cell.textLabel.numberOfLines = 0;
cell.detailTextLabel.numberOfLines = 0;
cell.clearsContextBeforeDrawing;
if ([value isEqual: CELL_4]) {
cell.textLabel.text = @"About";
cell.detailTextLabel.text = cell4String;
Таким образом, в основном для 3.0 и 3.1 происходит то же самое, но при запуске приложения в симуляторе 3.0 последняя строка обрезается, если cell.detailTextLabel.numberOfLines
содержит более трех строк текста. Странно то, что текст просто обрезается, но ячейка рисуется на правильной высоте в 3.0, под ячейкой просто большое пустое пространство.
Кто-нибудь знает, почему это отличается между 3,0 и 3,1? Я знаю, что использую бета-версию Xcode, но довольно странно, что она работает в бета-версии, а не в 3.0, потому что, насколько я понимаю, я не делаю ничего слишком сумасшедшего, но что-то простое.
Спасибо