【发布时间】:2021-07-17 00:02:15
【问题描述】:
我正在尝试制作一个类似于通知的动画药丸,它会从手机顶部向下滑动,然后再向上滑动消失。
我正在尝试制作类似于下图的东西。
我遇到的问题是标签不会动画并随着“药丸”移动。我如何才能解决此问题并将标签粘贴到药丸视图?
这是我的代码:
var popupView = UIView(frame: CGRect(x: 0, y: -80, width: (window?.frame.size.width ?? 100), height: 75.0))
popupView.backgroundColor = UIColor.red
popupView.layer.cornerRadius = 20
popupView.bounds = popupView.frame.insetBy(dx: 10.0, dy: 10.0)
popupView.translatesAutoresizingMaskIntoConstraints = false
let label = UILabel(frame: CGRect(x: 0, y: -80, width: (window?.frame.size.width ?? 100), height: 75.0))
label.translatesAutoresizingMaskIntoConstraints = false
label.bounds = label.frame.insetBy(dx: 20, dy: 20)
label.textColor = .black
label.text = "Here is some text"
popupView.addSubview(label)
UIView.transition(with: popupView, duration: 1.5, options: .curveEaseInOut, animations: {
window?.addSubview(popupView)
popupView.frame = CGRect(x: 0, y: 40, width: (window?.frame.size.width ?? 100), height: 75.0)
}, completion: { _ in
UIView.animate(withDuration: 1, delay: 1.0, options: .curveEaseInOut) {
popupView.frame = CGRect(x: 0, y: -80, width: (window?.frame.size.width ?? 100), height: 75.0)
popupView.bounds = parent.view.frame.insetBy(dx: 15, dy: 15)
label.frame = CGRect(x: 0, y: -80, width: (window?.frame.size.width ?? 100), height: 75.0)
} completion: { finished in
print("completed animation")
}
})
}
【问题讨论】:
-
您似乎不明白视图有自己的坐标空间?