Яка висота за замовчуванням UITableViewCell?


166

Я думав, цю інформацію було б простіше знайти :-)

Яка висота за замовчуванням UITableViewCell? Це схоже на 44 пікселі, але я вважаю за краще бути впевненим.

Відповіді:


361

Це 44 пікселі. Безумовно. Я ніколи не забуду це число.

44px - також висота за замовчуванням для UIToolbar та UINavigationBar. (Обидва перемикаються на 32 пікселів при автоматичному повороті на альбомну орієнтацію.)


61
Ха-ха, "Я ніколи не забуду це число" звучить зловісно ;-)
Роб

4
@antony: view.bounds.size.height
samvermette

4
@MikeyWard: Ви, мабуть, це вже зрозуміли, але роздільник 1px включений у висоту. Він фактично охоплює найнижчий вміст клітини.
Ben S

44
Технічно це 44 бали. Він вийде до 88 пікселів на дисплеї сітківки. Не ділити волоски чи нічого.
Бен Мошер

23
tableView.rowHeight
Мисливець

27

Якщо ви хочете, щоб параметр за замовчуванням на будь-якому пристрої ви можете використовувати: UITableViewAutomaticDimension

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {

    return UITableViewAutomaticDimension;
}

Хоча зараз 44 пікселів за замовчуванням, це корисний метод, якщо для вашої програми встановлено значення за замовчуванням.


3
Перейменований UITableView.automaticDimensionsу Swift 4
Bot

Це працює завжди, якщо все, що вам потрібно, - це висота за замовчуванням. Якщо ви дійсно хочете деякого кратного висоти за замовчуванням, то значення, повернене цим, не є фактичною висотою. Apple приховала справжню висоту точки за цим магічним числом (яке буває -1).
PKCLsoft

16

Коли style = UITableViewStyleGrouped, висота за замовчуванням для верхньої та нижньої комірок насправді 45.0f(немає 44.0f). І якщо згрупована таблиця буде лише одним рядком, висота комірки буде 46.0f.


це, включаючи роздільник?
lhunath

10

Якщо ви хочете обчислити це на льоту, просто виділіть осередок макетної таблиці і прочитайте її висоту

UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
int height = cell.frame.size.height ;

Таким чином ви захищаєтесь від змін у майбутніх версіях iOS, хоча, мабуть, це малоймовірно.


Це проблематично з автоматичним
розгортанням

27
З автоматичним розкладом все проблематично.
devios1

проблематично, як саме?
AndrewR

3

"Коли style = UITableViewStyleGrouped, висота за верхньою та нижньою клітинками за замовчуванням насправді становить 45.0f (а не 44.0f). І якщо згрупована таблиця має лише один рядок, висота комірки буде 46.0f." Це неправильно!! 44.0f насправді! Я просто тестую це!


2

Це звучить правильно. Але щоб бути впевненим, що ви можете завантажувати конструктор інтерфейсів, помістіть у проект UITableViewCell, а потім перевірте властивості розміру у вікні інспектора. Зараз у мене немає свого MacBook, тому я не можу перевірити. Але якщо ви не отримаєте кращої відповіді від когось, саме так ви можете перевірити на собі.


Ну добре, саме там я спочатку отримав 44.
Роб

2

У Swift 4 та Swift 5 просто використовуйте:

UITableView.automaticDimension

Використання 44px не буде достатньо, оскільки він буде змінюватися в залежності від різної щільності пікселів на екрані.


0

На iOS 12 висота за замовчуванням на пристроях, подібних iPhone X (X, XS, XS Max, XR), становить 49pt .

Інші пристрої на iOS 12 як і раніше мають 44pt . Це тонка різниця, але це відчувається як хороше покращення в прямому порівнянні.

Якщо ви не повірите мені, відміряйте себе на цьому скріншоті (не забудьте поділити на 3) ...;)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.