Кнопка Скрыть iOS с равным ограничением ширины - PullRequest
0 голосов
/ 08 мая 2018

Поэтому я пытаюсь реализовать некоторые ограничения функций, основанные на разрешениях в приложении. Данная функция работает с кнопкой, расположенной в нижней части ВК на main.storyboard.

Есть еще одна кнопка, которую я хочу оставить там. Они выровнены по горизонтали, но не в горизонтальном виде стека. Они имеют ограничение по ширине и вместе занимают все вертикальное пространство внизу.

Я хочу спрятать первый, и, таким образом, второй должен занимать все это горизонтальное пространство слева направо, но только когда предполагается, что доступ к первой кнопке ограничен. Я пытался сделать это в viewNeedsRefresh:

let equalWidthConstraint = firstButton.superview?.constraints.filter{
                $0.firstItem as? UIButton == firstButton && $0.secondItem as? UIButton == secondButton
            }.first
equalWidthConstraint?.isActive = false
firstButton.isHidden = true
secondButton.frame = CGRect(x: 0, y: firstButton.frame.origin.y, width: self.view.frame.width, height: firstButton.frame.height)

Но все, что это делает, это скрывает первую кнопку, в то время как вторая кнопка внезапно оказывается частично за кадром. Если я попытаюсь без ручного отключения ограничения, я получу его более чистым, но вторая кнопка все еще находится в исходном положении, вероятно потому, что она сохраняет первоначальную ширину из-за ограничения.

Ответы [ 2 ]

0 голосов
/ 08 мая 2018

Оказывается, они создавали повторно используемый компонент для этого в прошлом, до того как я присоединился, но на самом деле не использовали его более одного раза. Я преобразовал страницу, чтобы использовать этот компонент вместо. Простите, ребята.

0 голосов
/ 08 мая 2018

Лично, на мой взгляд, я бы сделал следующее:

  1. снять ограничение равной ширины
  2. установить ограничение ширины на одну из кнопок, установленную в 0,5 раза больше ширины суперпредставления, затем создать выход для ограничения
  3. установите другую кнопку с трейлингом или лидирующей (в зависимости от выбранной вами кнопки) на ноль.
  4. Когда вам нужно свернуть кнопку, теперь вы можете напрямую установить константу ограничения следующим образом:

    buttonWidth.constant = 0
    

Это скрыло бы вид и дало бы желаемый эффект.

...