AnimateWithDuration块不正确

时间:2015-01-18 21:00:52

标签: ios swift uiview uiscrollview

我正在尝试使用AnimateWithDuration块为UIView设置动画。这个UIView包含两个UIScrollViews和两个按钮。一个按钮是过滤器,另一个是filterUP。像图片一样:

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

1 个答案:

答案 0 :(得分:0)

尝试在动画块上方设置self.colouredSquare.clipToBounds = true

  

clipToBounds是一个布尔值,用于确定子视图是否为   局限于视图的边界。将此值设置为true会导致   要剪切到接收器边界的子视图。如果设置为false,   其帧超出接收器可见边界的子视图   没有剪裁。默认值为false。