我正在尝试使用AnimateWithDuration块为UIView设置动画。这个UIView包含两个UIScrollViews和两个按钮。一个按钮是过滤器,另一个是filterUP。像图片一样:
所以向下滚动我使用这个块:
@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
})
}
答案 0 :(得分:0)
尝试在动画块上方设置self.colouredSquare.clipToBounds = true
。
clipToBounds是一个布尔值,用于确定子视图是否为 局限于视图的边界。将此值设置为true会导致 要剪切到接收器边界的子视图。如果设置为false, 其帧超出接收器可见边界的子视图 没有剪裁。默认值为false。