Яка висота за замовчуванням 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.