Подтвердить что ты не робот

Размер шрифта UITableViewCellStyleSubtitle по умолчанию?

Каков размер шрифта по умолчанию для textLabel и detailTextLabel?

4b9b3361

Ответ 1

Фактический размер шрифта зависит от пользовательских настроек в настройках → Общие → TextSize. Обычно вы не должны использовать фиксированный размер шрифта, но должны использовать что-то вроде:

[UIFont preferredFontForTextStyle:UIFontTextStyleHeadline]

очевидно, в зависимости от того, что вам нужно. В любом случае, если вы создаете UITableViewCell со стилем UITableViewCellStyleSubtitle, то шрифт cell.text - это тот же объект, что и

[UIFont preferredFontForTextStyle: UIFontTextStyleBody]

и шрифт cell.detailTextLabel - это тот же объект, что и

[UIFont preferredFontForTextStyle: UIFontTextStyleCaption1]. 

Вы получаете шрифты от самых больших до наименьших, используя константы, заканчивающиеся на "Body", "Subheadline", "Footnote", "Caption1", "Caption2", чтобы вы знали, что использовать, если вы хотите немного меньше или больше текста. "Заголовок" имеет тот же размер, что и "Тело", но смелый.

Вероятно, лучше всего создать ячейку во время выполнения и получить из нее шрифты.

Ответ 2

Вы всегда можете установить любой шрифт на эти метки в коде, поэтому, если вам нужны определенные гарантированные фиксированные значения, вам лучше сделать это, поскольку значения размера могут варьироваться в зависимости от многих факторов (стиль ячейки, версия sdk, версия os и т.д.).

Я тестировал на симуляторе версию 4.2 SDK и получил следующие результаты (никаких дополнительных свойств для ячеек не было):

  • UITableViewCellStyleSubtitle

    textLabel: Helvetica Bold, размер: labelFontSize + 1 (18 px)
     detailsLabel: Helvetica, размер: systemFontSize (14 px)

  • UITableViewCellStyleValue1

    textLabel: Helvetica Bold, размер: labelFontSize (17 px)
     detailsLabel: Helvetica Bold, размер: systemFontSize + 1 (15 px)

  • UITableViewCellStyleValue2

    textLabel: Helvetica Bold, размер: smallSystemFontSize (12 px)
     detailsLabel: Helvetica, размер: labelFontSize (17 px)

Ответ 3

Когда я запускаю это на симуляторе iPad 5.0:

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] 
             initWithStyle:UITableViewCellStyleValue2
             reuseIdentifier:CellIdentifier] autorelease];

    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
}
//set text to get font size > 0

NSLog(@"cellStyleValue2 text font: %@\n", cell.textLabel.font);
NSLog(@"cellStyleValue2 detail font: %@\n", cell.detailTextLabel.font);

Я вижу:

cellStyleValue2 text font: font-family: "Helvetica"; font-weight: bold; font-style: normal; font-size: 12px

cellStyleValue2 detail font: font-family: "Helvetica"; font-weight: bold; font-style: normal; font-size: 15px

Поскольку эти параметры, по-видимому, меняются, регистрация объектов шрифта - это хороший способ узнать, не догадываясь...