如何检查标签是否从屏幕上脱落?

时间:2015-03-16 21:40:20

标签: ios swift uilabel

我有一个关于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())?或者我应该尝试检查标签的中心点是否在屏幕范围内?我尝试使用这两个选项一起破解解决方案,但到目前为止没有任何工作。有什么建议吗?

0 个答案:

没有答案