1

Я разрабатываю приложение, где я использую пользовательские segues для перемещения между двумя UIViewController.Почему кнопка, которая запускает разматывающий сегмент, мгновенно исчезает?

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

Gif of the animation

Кнопка устанавливаются с помощью раскадровки и я чтрла-тащусь от него к выходу из этого UIViewController. Появился разворот, и я создал все необходимые файлы.

поручаю мой пользовательский класс в Segue Анвайнд и теперь переопределить perform() -метода так:

override func perform() { 

    let settingsVCView = self.sourceViewController.view 
    let startVCView = self.destinationViewController.view 

    let screenHeight = UIScreen.mainScreen().bounds.size.height 
    let screenWidth = UIScreen.mainScreen().bounds.size.width 

    let window = UIApplication.sharedApplication().keyWindow 
    window?.insertSubview(startVCView, aboveSubview: settingsVCView) 

    UIView.animateWithDuration(0.8, delay: 0, options: .CurveEaseInOut, animations: {() -> Void in 

      settingsVCView.frame = CGRectMake(0, -(screenHeight), screenWidth, screenHeight) 
      startVCView.frame = CGRectMake(0, 0, screenWidth, screenHeight) 

     }) { (finished) -> Void in 

      self.sourceViewController.dismissViewControllerAnimated(false, completion: nil) 

    } 

} 

Все настройки и анимация делается, как вы можете увидеть в формате GIF. Некоторые скажут, что анимация работает правильно, но раннее исчезновение этой кнопки действительно меня беспокоит. Я пробовал:

  • Регулировочные кнопки выделены состояния
  • Установка кнопки не только в Compact/Regular
  • Настройка кнопок типа от системы к Настраиваемый
  • Пытался проследить точный момент, кнопка исчезает с помощью контрольных точек (не мог найти его, но обнаружили, что установка кадров в закрывающем-блоке не проблема)
  • закомментировал dismissViewControllerAnimated: функцию

Я не нашел никакого решения.

+0

Не может ли выделенный цвет фона иметь тот же зеленый цвет? Возможно, попробуйте изменить цвет заголовка на черный, чтобы вы могли легко видеть различия в цвете. Или это может быть автоматическая магия? Вы можете создать вторую кнопку с аналогичными ограничениями и посмотреть, исчезнет ли она, когда вы касаетесь первой кнопки. Держась за соломинку здесь! – Michael

+0

@ Майкл благодарю вас за ваш вклад! Я пробовал все ваши предложения, и, к сожалению, сначала ничего не получилось, но вы были правы, это была автоматическая магия. Я собираюсь ответить на мой вопрос сейчас, ради видимости для других. – SebastianR

ответ

0

Я, наконец, решил проблему, сначала очистив все ограничения макета этой кнопки. Затем я снова нажал на него, и он не исчез, поэтому он имел какое-то отношение к ограничениям.

This is what the constraint should be set like.

Ошибку прижав верхнее ограничение кнопки в руководство Top Layout и не вид сверху. Изменение этого якоря разрешило мою проблему, и моя кнопка перестала прятаться :)

Смежные вопросы