Im пытается сгенерировать массив из 10 кнопок, используя for-in-loop, а затем оживляя их, используя for-in-loop, который находится внутри CADisplayLink, но проблема в том, что создается и анимируется только одна кнопка. Пожалуйста помоги! Заранее спасибо!Как сгенерировать массив кнопок, используя for-in-loop, а затем анимировать их с помощью CADisplayLink
var buttons: [UIButton] = Array(count: 10, repeatedValue: UIButton.buttonWithType(.System) as UIButton)
override func viewDidLoad() {
super.viewDidLoad()
var displayLink = CADisplayLink(target: self, selector: "handleDisplayLink:")
displayLink.addToRunLoop(NSRunLoop.currentRunLoop(), forMode: NSDefaultRunLoopMode)
for index in 0...10 - 1{
var xLocation:CGFloat = CGFloat(arc4random_uniform(300) + 30)
buttons[index].frame = CGRectMake(xLocation, 10, 100, 100)
buttons[index].setTitle("Test Button \(index)", forState: UIControlState.Normal)
buttons[index].addTarget(self, action: "buttonAction:", forControlEvents: UIControlEvents.TouchUpInside)
self.view.addSubview(buttons[index])
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
func handleDisplayLink(displayLink: CADisplayLink) {
for index in 0...10 - 1{
var buttonFrame = buttons[index].frame
buttonFrame.origin.y += 1
buttons[index].frame = buttonFrame
if buttons[index].frame.origin.y >= 500 {
displayLink.invalidate()
}
}
}
func buttonAction(sender: UIButton) {
sender.alpha = 0
}
}
Благодарим вас и есть ли способ создать какую-то задержку для CADisplayLink, как вы можете сделать с UIView.AnimateWithDuration, чтобы все кнопки отображались в разное время? –