Каков размер шрифта по умолчанию для textLabel и detailTextLabel?
Размер шрифта UITableViewCellStyleSubtitle по умолчанию?
Ответ 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
Поскольку эти параметры, по-видимому, меняются, регистрация объектов шрифта - это хороший способ узнать, не догадываясь...