如何在Swift中使用子视图的自定义操作为视图设置动画?

时间:2018-12-01 06:56:10

标签: ios swift

我有一个故事板,其中包含以下内容:

ViewController —查看

— —安全区域

— —视觉效果视图

— — —视图

— — — — UILabel(名称)

— — — — UILabel(数字)

我想为VisualEffectView设置动画,以使名称Label按比例向上移动,但Number Label保持相对静止(例如到安全区域或视图。)

到目前为止,我的代码如下:

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
    full_view = !full_view
    UIView.animate(withDuration: 0.5, delay: 0, options: [.curveEaseOut], animations: {
        self.frame = CGRect(x: self.frame.origin.x, y: (self.full_view ? 2*self.superview!.bounds.height : 3*self.superview!.bounds.height)/4, width: self.frame.width, height: self.superview!.frame.height - self.frame.height)
    })
}

这可以完美地给视图添加动画效果,但是标签放错了位置。以下imgur链接显示了初始视图,实际(不需要的)视图和预期的视图。

View Image Link

0 个答案:

没有答案