我有一个关于UIKit Dynamics的问题。假设我正在设计一些交互性,当用户点击时,我想要一个带有一些文字的标签从屏幕上掉下来(此时,我会销毁它,一个新标签会产生并从顶部掉落,捕捉到中心,当用户点击时,它也会从屏幕上掉下来,然后就可以了。)
import UIKit
class ViewController: UIViewController {
var myLabel: UILabel!
var gravity: UIGravityBehavior!
var animator: UIDynamicAnimator!
override func viewDidLoad() {
super.viewDidLoad()
myLabel = UILabel(frame: CGRect(x: 100, y: 100, width: 100, height: 100))
myLabel.backgroundColor = UIColor.blueColor()
myLabel.text = "Some sample text."
view.addSubview(myLabel)
animator = UIDynamicAnimator(referenceView: view)
gravity = UIGravityBehavior(items: [myLabel])
animator.addBehavior(gravity)
}
上面的代码将生成一个UILabel并使其从屏幕上掉落。我明白如何做到这一切。但是,我不知道如何确定标签是否或何时完全从视图中掉落,此时它被删除了SuperSuperView,而我的新标签可能会产生并从顶部掉落。
我是否应该使用方法来确定标签是否与视图相交(如CGRectIntersectsRect())?或者我应该尝试检查标签的中心点是否在屏幕范围内?我尝试使用这两个选项一起破解解决方案,但到目前为止没有任何工作。有什么建议吗?