Как получить поля макета для элемента кнопки панели в панели навигации? - PullRequest
0 голосов
/ 01 ноября 2019

Я пытаюсь создать заголовки разделов в представлении коллекции, которые похожи на заголовки разделов в табличном представлении.

Текст в заголовке раздела табличного представления выровнен по элементу левой панели. Как получить это значение макета выравнивания в представлении коллекции?

В табличном представлении это значение выравнивания находится в свойстве полей макета. Я не могу найти что-то эквивалентное в представлении коллекции.

tableView.layoutMargins.left

enter image description here

1 Ответ

0 голосов
/ 07 ноября 2019

UIBarButtonItem не является потомком UIView. Это проблема. Что бы Apple ни делала под прикрытием UINavigationBar, не является общедоступным. Я думаю, что ваша лучшая ставка - это своего рода хак.

Где-то в вашем коде инициализации выполните следующее:

UITableView* temp = [[UITableView alloc] init];
UIEdgeInsets insets = temp.layoutMargins;
NSLog(@"%f", insets.left);

Затем сохраните объект UIEdgeInsets и дайте таблице исчезнуть в эфире. .

NSLog в приведенном выше примере печатает 8.000000. Кажется, что Apple просто использует стандартное значение. Вы также можете использовать это. Но если вы хотите избежать жесткого кодирования стандартного значения, тогда делайте то, что я предлагаю.

Я признаю, что вы полагаетесь на таблицу, а не на левую кнопку бара. Но я предполагаю, что вы хотите сделать то, что делают представления таблицы. Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...