macOS-Изменить размер многих кнопок с различной шириной с Autolayout - PullRequest
0 голосов
/ 13 декабря 2018

У меня есть несколько кнопок одинаковой высоты и разной ширины.И ширина каждой кнопки может меняться в зависимости от операции пользователя .

Я пытался использовать NSStackView и два вида (помогите сделать StackView в центре суперпредставления. Они должны иметь одинаковую ширину). Это выглядит так:

enter image description here

Но это решение не может изменить размер ширины каждой кнопки, и Я надеюсь, что я могу установить размер рамки кнопки и иметь равный интервал распределения

И ябудет рисовать текст и изображение для этих кнопок, а не использовать setTitlt: для установки заголовка кнопки.

Есть идеи? Спасибо

1 Ответ

0 голосов
/ 08 января 2019

Я решил эту проблему самостоятельно, добавив ограничение программно.

Это мое решение:

  1. Невозможно использовать «Равный» в качестве ограничения для ограничения ширины кнопки.Рекомендуется использовать «Меньше или равно», чтобы ограничить максимальную ширину кнопки.
  2. Расчет максимальной ширины всех кнопок, чтобы все кнопки имели максимальный статус.
  3. Добавьте NSView рядом с первой и последней кнопкой (слеваи справа) соответственно.
  4. Установить ограничение NSView влево и вправо до ближайшего соседа, равного нулю, ширина и высота могут его игнорировать.И установите для обоих этих NSView значение «Равная ширина».
  5. Вставьте все кнопки в NSStackView и установите его высоту.enter image description here
  6. Установить ограничение «Равная высота для суперпредставления» для всех кнопок.Все кнопки имеют одинаковую высоту со StackView, и ширина всех кнопок также одинакова.
  7. В коде вы можете добавить ограничение, когда вы хотите изменить размер кнопки.Например.[NSLayoutConstraint constraintWithItem:item attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:0.0 constant:value];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...