Как управлять расположением элементов управления UIBarButtonItem на панели инструментов iOS? - PullRequest
0 голосов
/ 14 апреля 2020

На моей панели инструментов я пытаюсь правильно расположить три кнопки. Один посередине, который должен оставаться по центру по горизонтали, а затем один выровненный влево и один выровненный вправо. Но поскольку текст для левой кнопки длиннее, чем средняя или правая, элементы-разделители, похоже, не будут давать желаемого эффекта пробела. Я пробовал фиксированный и гибкий, но, конечно, использование фиксированного типа не будет динамически реагировать на различные ширины экрана, а гибкие (UIBarButtonSystemItemF FlexibleSpace) не будут удерживать среднюю кнопку в центре.

I ' Я определил макет как в Интерфейсном Разработчике, так и программно, и я получаю тот же эффект, что вы видите здесь. Например, iPhone 6s выглядит следующим образом:

enter image description here

, а iPhone 11 Pro выглядит так:

enter image description here

Как видите, кнопка «Середина» не центрирована. Используя UIBarButtonSystemItemFixedSpace вместо UIBarButtonSystemItemF FlexibleSpace, я мог бы точно определить ширину распорок, но для правильного вычисления мне нужно было бы знать ширину каждого UIBarButtonItem, а также правильный метод делегата, чтобы сделать это. Это возможно, или я должен сделать пользовательский вид (или что-то еще), чтобы этот UIToolbar выглядел так, как я хочу?

1 Ответ

0 голосов
/ 17 апреля 2020

Попробуйте добавить начальные пробелы к сокращенному названию ИЛИ, используя следующие элементы:

Кнопка с длинным текстом, Гибкое пространство, Средняя кнопка, Гибкое пространство, Фиксированный пробел, Короткая кнопка

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

...