首页 文章

UIView的动画约束(作为主视图的子视图)

提问于
浏览
0

我将拖动的视图的约束设置到故事板,以便视图覆盖整个屏幕 . (我从顶部,左侧,底部和右侧将其固定为0) . 当视图出现时,我希望视图缩小 . 常量应该从0到20动画 .

在应用程序中,它会更改常量,但不会为其设置动画 . 此外,在缩小的视图后面,一切都是黑色的,虽然它应该是白色的(因为在该视图后面是白色的主视图) .

override func viewDidAppear(animated: Bool) {

    UIView.animateWithDuration(2.5, animations: {
        self.leftPin.constant = 20.0
        self.topPin.constant = 20.0
        self.rightPin.constant = 20.0
        self.bottomPin.constant = 20.0
        // bg is my view I want to shrink
        self.bg.layoutIfNeeded()
        })
}

我读到为了“将”新约束“应用”到实际布局,你必须运行layoutIfNeeded() . 但是上面的那些限制也没有那个功能 . 为什么?

1 回答

  • 2

    @试试这个

    override func viewDidAppear(animated: Bool) {
    
        self.leftPin.constant = 20.0
        self.topPin.constant = 20.0
        self.rightPin.constant = 20.0
        self.bottomPin.constant = 20.0
    
        UIView.animateWithDuration(2.5, animations: {
    
        self.view.layoutIfNeeded()
        })
    }
    

相关问题