2015-01-18 2 views
0

Я пытаюсь анимировать UIView с блоком AnimateWithDuration. Этот UIView содержит два UIScrollViews и две кнопки. Одна кнопка - фильтр вниз, а другой - filterUP. Как изображение:Неправильный блок AnimateWithDuration

enter image description here

Так прокрутке вниз Я использую этот блок:

@IBAction func FilterEntry(sender: AnyObject) { 

    self.FilterDown.hidden = true 
    self.FilterDownIcon.hidden = true 

    var duration = 0.5 
    UIView.animateWithDuration(duration, animations: { 
     self.ColouredSquare.frame = CGRect(x: 0, y: 65, width: 400, height: 212) 

     }, completion: { finished in 
      self.FilterUPIcon.hidden = true 
      self.FilterUP.hidden = true 
      self.DateScroll.hidden = false 
      self.EventScroll.hidden = false 
      self.FilterUPIcon.hidden = false 
      self.FilterUP.hidden = false 
    }) 
} 

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

Вот мой код, который приносит UIView вверх:

@IBAction func FilterUPEvent(sender: AnyObject) { 

     self.FilterUP.hidden = true 
     self.FilterUPIcon.hidden = true 

     var duration = 0.5 
     UIView.animateWithDuration(duration, animations: { 
      self.ColouredSquare.frame = CGRect(x: 0, y: 65, width: 400, height: 20) 

      }, completion: { finished in 

       self.EventScroll.hidden = true 
       self.DateScroll.hidden = true 
       self.FilterUP.hidden = true 
       self.FilterUPIcon.hidden = true 
       self.FilterDown.hidden = false 
       self.FilterDownIcon.hidden = false 
     }) 
} 

enter image description here

+0

В чем вопрос? Кроме того, если вы хотите _scroll_, почему вы меняете _frame_ чего-то? – matt

+0

Привет, он прокручивает прекрасный снизу, но, поднимаясь, он прокручивает фон, но затем просто удаляет UIScrollViews внезапно. Это имеет смысл, потому что в закрывающих блоках я их спрятал. но спускаться он выглядит довольно гладко. – Jason

+0

Вы можете использовать свойство 'alpha'' UIView' в блоке анимации для постепенного исчезновения и исчезновения представлений. –

ответ

0

Попробуйте установить self.colouredSquare.clipToBounds = true над блоком анимации.

ClipToBounds является логическим значением, которое определяет, является ли подвиды являются ограничивается пределами вида. Установка этого значения в значение true приводит к тому, что поднаботки должны быть привязаны к границам приемника. Если установлено значение false, subviews, чьи рамки выходят за пределы видимых границ приемника , не обрезаются. Значение по умолчанию неверно.

+1

Идеальный помощник !!! – Jason

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