【发布时间】:2015-01-02 17:00:06
【问题描述】:
所以我声明了一个 UILabel!命名为“textLabel”,它具有上升的重力效果。现在,当它达到 -30 时,我希望标签重新出现在 (200, 444) 处。我使用 NSTimer 检查是否(labelText > -30),但是当它到达/通过该点时,它只是在它应该出现的位置(在中间附近)闪烁,但它不是从中间开始。这是我的大部分代码。
如何让标签出现在它的新位置?所以一旦它在y轴上达到-30,它就可以再次循环?我已经搜索和搜索。帮顶
@IBOutlet weak var textLabel: UILabel!
var gravity: UIGravityBehavior!
var animator: UIDynamicAnimator!
var itemBehavior: UIDynamicItemBehavior!
var boundaryTimer = NSTimer()
Override func viewDidLoad() {
animator = UIDynamicAnimator(referenceView: view)
gravity = UIGravityBehavior(items: [textLabel])
animator.addBehavior(gravity)
boundaryTimer = NSTimer.scheduledTimerWithTimeInterval(0.5, target: self, selector: "leftBoundary", userInfo: nil, repeats: true)
itemBehavior = UIDynamicItemBehavior(items: [textLabel])
itemBehavior.elasticity = 1.2
gravity.gravityDirection = CGVectorMake(0.0 , -0.01)
animator.addBehavior(itemBehavior)
}
func leftBoundary() {
if textLabel.center.y < 40 {
self.textLabel.center = CGPointMake(200, 444)
}
}
【问题讨论】:
标签: ios iphone ipad swift ios8