Есть ли способ быстро расположить кнопки в Swift так, чтобы они "перенос слов" - PullRequest
0 голосов
/ 13 мая 2019

ОБНОВЛЕНИЕ: я добавляю фотографию, которая может лучше продемонстрировать тип того, чего я пытаюсь достичь. enter image description here Я создаю приложение, в котором пользователь может установить столько потоков, сколько ему нравится, в потоке изображений. Я хотел бы отобразить каждый фильтр, который они установили, в виде кнопки с X, если они хотели бы удалить его. Я создал свои собственные кнопки и назначил им действия, но это будет мой первый проект с динамическими кнопками.

Моя путаница в том, как программно создать кнопку, назначить ей действие, которое знает, на какой фильтр воздействовать, а затем расположить его так, чтобы кнопки вели себя как текст в текстовом поле, чтобы, если кнопка не помещалась на на экране это «перенос слов» на следующую строку.

У меня есть массив фильтров, которые они применили, и я могу их зациклить, я просто не знаю, каков механизм их упорядочения, чтобы каждая кнопка действовала как собственное слово в предложении. В качестве обходного пути я мог бы использовать представление таблицы / коллекции, но так как ширина фильтров варьируется среди потенциальных кнопок, я действительно надеялся не устанавливать одинаковую ширину, как это требовалось бы. Я видел приложения, которые делают это, поэтому я надеюсь, что эксперты здесь могут помочь.

Я подозреваю, что решение выглядит примерно так:

  • Для цикла, который имеет для каждого фильтра в фильтрах
  • Создание и настройка кнопки UIB с текстовым заголовком фильтра
  • Назначить действие, которое принимает аргумент, чтобы я знал, какой фильтр удалить
  • Назначьте ограничения соответствующим образом, чтобы он занимал всю ширину экрана, но «переносится по словам», если он не помещается, и любой объект контейнера, в котором он находится, увеличивается по высоте, который необходимо будет отрегулировать в ландшафтном режиме

    // Может ли #selector принимать аргумент, например, расположение массива фильтра? myButton.addTarget (self, action: #selector (helloButton), forControlEvents: .TouchUpInside)

Stack View vs Manual Layout Appearance

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